Mercurial > libervia-backend
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 |