plugin XEP-0060: added setNodeAffiliations and its bridge method (psNodeAffiliationsSet)
This commit is contained in:
parent
b211d3afe6
commit
f829ef828b
1 changed files with 20 additions and 0 deletions
|
|
@ -90,6 +90,7 @@ class XEP_0060(object):
|
|||
host.bridge.addMethod("psNodeConfigurationSet", ".plugin", in_sign='ssa{ss}s', out_sign='', method=self._setNodeConfiguration, async=True)
|
||||
host.bridge.addMethod("psAffiliationsGet", ".plugin", in_sign='sss', out_sign='a{ss}', method=self._getAffiliations, async=True)
|
||||
host.bridge.addMethod("psNodeAffiliationsGet", ".plugin", in_sign='sss', out_sign='a{ss}', method=self._getNodeAffiliations, async=True)
|
||||
host.bridge.addMethod("psNodeAffiliationsSet", ".plugin", in_sign='ssa{ss}s', out_sign='', method=self._setNodeAffiliations, async=True)
|
||||
host.bridge.addMethod("psDeleteNode", ".plugin", in_sign='sss', out_sign='', method=self._deleteNode, async=True)
|
||||
host.bridge.addMethod("psItemGet", ".plugin", in_sign='ssiassa{ss}s', out_sign='(asa{ss})', method=self._getItems, async=True)
|
||||
host.bridge.addMethod("psRetractItem", ".plugin", in_sign='sssbs', out_sign='', method=self._retractItem, async=True)
|
||||
|
|
@ -492,6 +493,25 @@ class XEP_0060(object):
|
|||
d.addCallback(cb)
|
||||
return d
|
||||
|
||||
def _setNodeAffiliations(self, service_s, nodeIdentifier, affiliations, profile_key=C.PROF_KEY_NONE):
|
||||
client = self.host.getClient(profile_key)
|
||||
affiliations = {jid.JID(jid_): affiliation for jid_, affiliation in affiliations.iteritems()}
|
||||
d = self.setNodeAffiliations(client, jid.JID(service_s) if service_s else None, nodeIdentifier, affiliations)
|
||||
return d
|
||||
|
||||
def setNodeAffiliations(self, client, service, nodeIdentifier, affiliations):
|
||||
"""Update affiliations of a node owned by profile
|
||||
|
||||
@param affiliations(dict[jid.JID, unicode]): affiliations to set
|
||||
check https://xmpp.org/extensions/xep-0060.html#affiliations for a list of possible affiliations
|
||||
"""
|
||||
request = pubsub.PubSubRequest('affiliationsSet')
|
||||
request.recipient = service
|
||||
request.nodeIdentifier = nodeIdentifier
|
||||
request.affiliations = affiliations
|
||||
d = request.send(client.xmlstream)
|
||||
return d
|
||||
|
||||
def _deleteNode(self, service_s, nodeIdentifier, profile_key):
|
||||
return self.deleteNode(jid.JID(service_s) if service_s else None, nodeIdentifier, profile_key)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue