diff src/plugins/plugin_xep_0060.py @ 2226:6856b7225c5b

plugin XEP-0060: getNodeAffiliations use jid.JID as keys instead of jids as unicode
author Goffi <goffi@goffi.org>
date Mon, 17 Apr 2017 20:31:12 +0200
parents 6a2fa651d7fa
children b5befe7722d3
line wrap: on
line diff
--- a/src/plugins/plugin_xep_0060.py	Sun Apr 16 18:00:45 2017 +0200
+++ b/src/plugins/plugin_xep_0060.py	Mon Apr 17 20:31:12 2017 +0200
@@ -483,6 +483,7 @@
     def _getNodeAffiliations(self, service_s, nodeIdentifier, profile_key):
         client = self.host.getClient(profile_key)
         d = self.getNodeAffiliations(client, jid.JID(service_s) if service_s else None, nodeIdentifier)
+        d.addCallback(lambda affiliations: {j.full(): a for j, a in affiliations.iteritems()})
         return d
 
     def getNodeAffiliations(self, client, service, nodeIdentifier):
@@ -497,7 +498,7 @@
             except StopIteration:
                 raise ValueError(_(u"Invalid result: missing <affiliations> element: {}").format(iq_elt.toXml))
             try:
-                return {e['jid']: e['affiliation'] for e in affiliations_elt.elements((pubsub.NS_PUBSUB_OWNER, 'affiliation'))}
+                return {jid.JID(e['jid']): e['affiliation'] for e in affiliations_elt.elements((pubsub.NS_PUBSUB_OWNER, 'affiliation'))}
             except KeyError:
                 raise ValueError(_(u"Invalid result: bad <affiliation> element: {}").format(iq_elt.toXml))