tmp(wokkel/pubsub): allows getNodes to return names using tuples(node/names)

This commit is contained in:
Goffi 2017-08-27 20:14:59 +02:00
commit 607138befb

View file

@ -1289,6 +1289,22 @@ class PubSubService(XMPPHandler, IQHandlerMixin):
return d
def _parseNodes(self, nodes, target):
"""parse return values of resource.getNodes
basestring values are used as node
tuple are unpacked as node, name
"""
items = []
for node in nodes:
if isinstance(node, basestring):
items.append(disco.DiscoItem(target, node))
else:
_node, name = node
items.append(disco.DiscoItem(target, _node, name))
return items
def getDiscoItems(self, requestor, target, nodeIdentifier=''):
if self.hideNodes:
d = defer.succeed([])
@ -1301,8 +1317,7 @@ class PubSubService(XMPPHandler, IQHandlerMixin):
else:
d = defer.succeed([])
d.addCallback(lambda nodes: [disco.DiscoItem(target, node)
for node in nodes])
d.addCallback(self._parseNodes, target)
return d