Changeset 36:f2953cadca90 in ralphm-patches
- Timestamp:
- Feb 12, 2010, 8:07:12 PM (12 years ago)
- Branch:
- default
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
client_service_example.patch
r35 r36 1 diff -r 0a3d1655a3e5doc/examples/client_service.tac1 diff -r 22c292560ce9 doc/examples/client_service.tac 2 2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3 +++ b/doc/examples/client_service.tac Fri Feb 12 11:55:082010 +01004 @@ -0,0 +1, 41@@3 +++ b/doc/examples/client_service.tac Fri Feb 12 20:06:47 2010 +0100 4 @@ -0,0 +1,56 @@ 5 5 +from twisted.application import service 6 6 +from twisted.internet import defer … … 8 8 +from wokkel.client import ClientService 9 9 +from wokkel.generic import FallbackHandler 10 +from wokkel.xmppim import RosterServerProtocol 10 +from wokkel.subprotocols import XMPPHandler 11 +from wokkel.xmppim import RosterItem, RosterServerProtocol 12 + 13 +from twisted.words.protocols.jabber.jid import internJID as JID 11 14 + 12 15 +import socket … … 17 20 + def __init__(self): 18 21 + RosterServerProtocol.__init__(self) 19 + self.roster = {'ralphm': 20 + [{'jid': 'intosi@' + domain, 21 + 'name': 'Intosi', 22 + 'subscription': 'both', 23 + 'ask': None, 24 + 'groups': ['Friends'] 25 + }, 26 + {'jid': 'termie@' + domain, 27 + 'name': 'termie', 28 + 'subscription': 'both', 29 + 'ask': None, 30 + 'groups': [] 31 + }], 32 + 'test': 33 + [ 34 + ]} 22 + self.roster = {'ralphm': [ 23 + RosterItem(JID('intosi@'+domain), 24 + subscriptionTo=True, 25 + subscriptionFrom=True, 26 + name='Intosi', 27 + groups=set(['Friends'])), 28 + RosterItem(JID('termie@'+domain), 29 + subscriptionTo=True, 30 + subscriptionFrom=True, 31 + name='termie'), 32 + ], 33 + 'test': [], 34 + } 35 35 + 36 36 + def getRoster(self, entity): 37 37 + return defer.succeed(self.roster[entity.user]) 38 + 39 + 40 +class Hello(XMPPHandler): 41 + 42 + def q(self): 43 + from wokkel.xmppim import AvailabilityPresence 44 + p = AvailabilityPresence(JID('ralphm@'+domain+'/default'), JID('termie@'+domain+'/Home'), show='chat') 45 + self.parent.send(p.toElement()) 46 + 47 + 48 + def connectionInitialized(self): 49 + from twisted.internet import reactor 50 + reactor.callLater(5, self.q) 51 + 38 52 + 39 53 + … … 43 57 +FallbackHandler().setHandlerParent(clientService) 44 58 +StaticRoster().setHandlerParent(clientService) 59 +Hello().setHandlerParent(clientService) 45 60 +clientService.setServiceParent(application) -
roster_server.patch
r34 r36 1 diff -r 09858bbc7f56wokkel/xmppim.py2 --- a/wokkel/xmppim.py Fri Feb 12 09:37:282010 +01003 +++ b/wokkel/xmppim.py Fri Feb 12 09:40:152010 +01001 diff -r 7b9f484b0b44 wokkel/xmppim.py 2 --- a/wokkel/xmppim.py Fri Feb 12 19:49:36 2010 +0100 3 +++ b/wokkel/xmppim.py Fri Feb 12 19:53:42 2010 +0100 4 4 @@ -12,6 +12,7 @@ 5 5 All of it should eventually move to Twisted. … … 20 20 def __init__(self, to=None, type=None): 21 21 domish.Element.__init__(self, (None, "presence")) 22 @@ -6 05,6 +609,7 @@23 self.groups = set()22 @@ -636,6 +640,7 @@ 23 24 24 25 25 … … 28 28 """ 29 29 Client side XMPP roster protocol. 30 @@ -6 14,6 +619,7 @@30 @@ -645,6 +650,7 @@ 31 31 ROSTER_SET = "/iq[@type='set']/query[@xmlns='%s']" % NS_ROSTER 32 32 self.xmlstream.addObserver(ROSTER_SET, self._onRosterSet) … … 36 36 jid = JID(element['jid']) 37 37 item = RosterItem(jid) 38 @@ -6 28,6 +634,7 @@38 @@ -659,6 +665,7 @@ 39 39 40 40 return item … … 44 44 """ 45 45 Retrieve contact list. 46 @@ - 683,6 +690,7 @@46 @@ -713,6 +720,7 @@ 47 47 item = self._parseRosterItem(iq.query.item) 48 48 self.onRosterSet(item) … … 52 52 """ 53 53 Called when a roster push for a new or update item was received. 54 @@ - 691,6 +699,7 @@54 @@ -721,6 +729,7 @@ 55 55 @type item: L{RosterItem} 56 56 """ … … 60 60 """ 61 61 Called when a roster push for the removal of an item was received. 62 @@ - 699,6 +708,57@@62 @@ -729,6 +738,48 @@ 63 63 @type entity: L{JID} 64 64 """ … … 76 76 + 77 77 + 78 + def _toRosterReply(self, items, iq):78 + def _toRosterReply(self, roster, iq): 79 79 + response = xmlstream.toResponse(iq, 'result') 80 80 + response.addElement((NS_ROSTER, 'query')) 81 81 + 82 + for item in items: 83 + element = response.query.addElement('item') 84 + element['jid'] = item['jid'] 85 + if item['name']: 86 + element['name'] = item['name'] 87 + element['subscription'] = item['subscription'] 88 + if item['ask']: 89 + element['ask'] = item['ask'] 90 + 91 + for group in item['groups']: 92 + element.addElement('group', content=group) 82 + for item in roster: 83 + response.query.addChild(item.toElement()) 93 84 + 94 85 + return response -
series
r34 r36 1 roster_item.patch 2 roster_server.patch 1 3 xmpp_client_listener.patch 2 4 xmpp_client_service.patch 3 roster_server.patch4 5 client_service_example.patch 5 6 component_server.patch
Note: See TracChangeset
for help on using the changeset viewer.