plugin XEP-0060: getNodeAffiliations use jid.JID as keys instead of jids as unicode

This commit is contained in:
Goffi 2017-04-17 20:31:12 +02:00
commit d04ba950d3

View file

@ -483,6 +483,7 @@ class XEP_0060(object):
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 @@ class XEP_0060(object):
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))