comparison src/plugins/plugin_xep_0060.py @ 2442:b8ffb7f8056b

plugin XEP-0060: added "options" argument to psSubscribe, and return subscription id if present
author Goffi <goffi@goffi.org>
date Sun, 19 Nov 2017 16:41:59 +0100
parents c6d859df4b27
children 30278ea1ca7c
comparison
equal deleted inserted replaced
2441:e86dc8cb4345 2442:b8ffb7f8056b
96 host.bridge.addMethod("psNodeDelete", ".plugin", in_sign='sss', out_sign='', method=self._deleteNode, async=True) 96 host.bridge.addMethod("psNodeDelete", ".plugin", in_sign='sss', out_sign='', method=self._deleteNode, async=True)
97 host.bridge.addMethod("psItemsGet", ".plugin", in_sign='ssiassa{ss}s', out_sign='(asa{ss})', method=self._getItems, async=True) 97 host.bridge.addMethod("psItemsGet", ".plugin", in_sign='ssiassa{ss}s', out_sign='(asa{ss})', method=self._getItems, async=True)
98 host.bridge.addMethod("psItemSend", ".plugin", in_sign='ssssa{ss}s', out_sign='s', method=self._sendItem, async=True) 98 host.bridge.addMethod("psItemSend", ".plugin", in_sign='ssssa{ss}s', out_sign='s', method=self._sendItem, async=True)
99 host.bridge.addMethod("psRetractItem", ".plugin", in_sign='sssbs', out_sign='', method=self._retractItem, async=True) 99 host.bridge.addMethod("psRetractItem", ".plugin", in_sign='sssbs', out_sign='', method=self._retractItem, async=True)
100 host.bridge.addMethod("psRetractItems", ".plugin", in_sign='ssasbs', out_sign='', method=self._retractItems, async=True) 100 host.bridge.addMethod("psRetractItems", ".plugin", in_sign='ssasbs', out_sign='', method=self._retractItems, async=True)
101 host.bridge.addMethod("psSubscribe", ".plugin", in_sign='sss', out_sign='', method=self._subscribe, async=True) 101 host.bridge.addMethod("psSubscribe", ".plugin", in_sign='ssa{ss}s', out_sign='s', method=self._subscribe, async=True)
102 host.bridge.addMethod("psUnsubscribe", ".plugin", in_sign='sss', out_sign='', method=self._unsubscribe, async=True) 102 host.bridge.addMethod("psUnsubscribe", ".plugin", in_sign='sss', out_sign='', method=self._unsubscribe, async=True)
103 host.bridge.addMethod("psSubscriptionsGet", ".plugin", in_sign='sss', out_sign='aa{ss}', method=self._subscriptions, async=True) 103 host.bridge.addMethod("psSubscriptionsGet", ".plugin", in_sign='sss', out_sign='aa{ss}', method=self._subscriptions, async=True)
104 host.bridge.addMethod("psSubscribeToMany", ".plugin", in_sign='a(ss)sa{ss}s', out_sign='s', method=self._subscribeToMany) 104 host.bridge.addMethod("psSubscribeToMany", ".plugin", in_sign='a(ss)sa{ss}s', out_sign='s', method=self._subscribeToMany)
105 host.bridge.addMethod("psGetSubscribeRTResult", ".plugin", in_sign='ss', out_sign='(ua(sss))', method=self._manySubscribeRTResult, async=True) 105 host.bridge.addMethod("psGetSubscribeRTResult", ".plugin", in_sign='ss', out_sign='(ua(sss))', method=self._manySubscribeRTResult, async=True)
106 host.bridge.addMethod("psGetFromMany", ".plugin", in_sign='a(ss)ia{ss}s', out_sign='s', method=self._getFromMany) 106 host.bridge.addMethod("psGetFromMany", ".plugin", in_sign='a(ss)ia{ss}s', out_sign='s', method=self._getFromMany)
585 585
586 def retractItems(self, service, nodeIdentifier, itemIdentifiers, notify=True, profile_key=C.PROF_KEY_NONE): 586 def retractItems(self, service, nodeIdentifier, itemIdentifiers, notify=True, profile_key=C.PROF_KEY_NONE):
587 client = self.host.getClient(profile_key) 587 client = self.host.getClient(profile_key)
588 return client.pubsub_client.retractItems(service, nodeIdentifier, itemIdentifiers, notify=True) 588 return client.pubsub_client.retractItems(service, nodeIdentifier, itemIdentifiers, notify=True)
589 589
590 def _subscribe(self, service, nodeIdentifier, profile_key=C.PROF_KEY_NONE): 590 def _subscribe(self, service, nodeIdentifier, options, profile_key=C.PROF_KEY_NONE):
591 client = self.host.getClient(profile_key) 591 client = self.host.getClient(profile_key)
592 service = None if not service else jid.JID(service) 592 service = None if not service else jid.JID(service)
593 return self.subscribe(client, service, nodeIdentifier) 593 d = self.subscribe(client, service, nodeIdentifier, options=options or None)
594 d.addCallback(lambda subscription: subscription.subscriptionIdentifier or u'')
595 return d
594 596
595 def subscribe(self, client, service, nodeIdentifier, sub_jid=None, options=None): 597 def subscribe(self, client, service, nodeIdentifier, sub_jid=None, options=None):
596 # TODO: reimplement a subscribtion cache, checking that we have not subscription before trying to subscribe 598 # TODO: reimplement a subscribtion cache, checking that we have not subscription before trying to subscribe
597 return client.pubsub_client.subscribe(service, nodeIdentifier, sub_jid or client.jid.userhostJID(), options=options) 599 return client.pubsub_client.subscribe(service, nodeIdentifier, sub_jid or client.jid.userhostJID(), options=options)
598 600