Mercurial > libervia-backend
diff src/plugins/plugin_xep_0060.py @ 1829:6079752ffeae
plugin XEP-0060, XEP-0277: added getNodeURI method
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 23 Jan 2016 19:53:16 +0100 |
parents | 442303b62a16 |
children | 3c0bb714a80b |
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0060.py Fri Jan 22 21:06:41 2016 +0100 +++ b/src/plugins/plugin_xep_0060.py Sat Jan 23 19:53:16 2016 +0100 @@ -31,6 +31,7 @@ from wokkel import data_form from zope.interface import implements from collections import namedtuple +import urllib import datetime from dateutil import tz # XXX: tmp.wokkel.pubsub is actually use instead of wokkel version @@ -400,6 +401,23 @@ client = self.host.getClient(profile_key) return client.pubsub_client.subscriptions(service, nodeIdentifier) + ## misc tools ## + + def getNodeURI(self, service, node, item=None): + """Return XMPP URI of a PubSub node + + @param service(jid.JID, None): PubSub service, + @param node(unicode): node + @return (unicode): URI of the node + """ + query_data = [('node', node.encode('utf-8'))] + if item is not None: + query_data.append(('item', item.encode('utf-8'))) + return "xmpp:{service}?{query}".format( + service=service.userhost(), + query=urllib.urlencode(query_data) + ).decode('utf-8') + ## methods to manage several stanzas/jids at once ## # generic #