mirror of
https://github.com/correl/SleekXMPP.git
synced 2024-11-27 19:19:54 +00:00
Implement a few more static node handlers.
This commit is contained in:
parent
2c5b77ae2e
commit
1ebc7f4d4b
2 changed files with 26 additions and 18 deletions
|
@ -452,7 +452,7 @@ class xep_0030(base_plugin):
|
|||
"""
|
||||
self._run_node_handler('del_features', jid, node, kwargs)
|
||||
|
||||
def _run_node_handler(self, htype, jid, node, data=None):
|
||||
def _run_node_handler(self, htype, jid, node, data={}):
|
||||
"""
|
||||
Execute the most specific node handler for the given
|
||||
JID/node combination.
|
||||
|
|
|
@ -57,7 +57,7 @@ class StaticDisco(object):
|
|||
self.nodes[(jid, node)]['info']['node'] = node
|
||||
self.nodes[(jid, node)]['items']['node'] = node
|
||||
|
||||
def get_info(self, jid, node, data=None):
|
||||
def get_info(self, jid, node, data):
|
||||
if (jid, node) not in self.nodes:
|
||||
if not node:
|
||||
return DiscoInfo()
|
||||
|
@ -66,11 +66,11 @@ class StaticDisco(object):
|
|||
else:
|
||||
return self.nodes[(jid, node)]['info']
|
||||
|
||||
def del_info(self, jid, node, data=None):
|
||||
def del_info(self, jid, node, data):
|
||||
if (jid, node) in self.nodes:
|
||||
self.nodes[(jid, node)]['info'] = DiscoInfo()
|
||||
|
||||
def get_items(self, jid, node, data=None):
|
||||
def get_items(self, jid, node, data):
|
||||
if (jid, node) not in self.nodes:
|
||||
if not node:
|
||||
return DiscoInfo()
|
||||
|
@ -79,14 +79,16 @@ class StaticDisco(object):
|
|||
else:
|
||||
return self.nodes[(jid, node)]['items']
|
||||
|
||||
def set_items(self, jid, node, data=None):
|
||||
pass
|
||||
def set_items(self, jid, node, data):
|
||||
items = data.get('items', set())
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['items']['items'] = items
|
||||
|
||||
def del_items(self, jid, node, data=None):
|
||||
def del_items(self, jid, node, data):
|
||||
if (jid, node) in self.nodes:
|
||||
self.nodes[(jid, node)]['items'] = DiscoItems()
|
||||
|
||||
def add_identity(self, jid, node, data={}):
|
||||
def add_identity(self, jid, node, data):
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['info'].add_identity(
|
||||
data.get('category', ''),
|
||||
|
@ -94,10 +96,12 @@ class StaticDisco(object):
|
|||
data.get('name', None),
|
||||
data.get('lang', None))
|
||||
|
||||
def set_identities(self, jid, node, data=None):
|
||||
pass
|
||||
def set_identities(self, jid, node, data):
|
||||
identities = data.get('identities', set())
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['info']['identities'] = identities
|
||||
|
||||
def del_identity(self, jid, node, data=None):
|
||||
def del_identity(self, jid, node, data):
|
||||
if (jid, node) not in self.nodes:
|
||||
return
|
||||
self.nodes[(jid, node)]['info'].del_identity(
|
||||
|
@ -106,25 +110,29 @@ class StaticDisco(object):
|
|||
data.get('name', None),
|
||||
data.get('lang', None))
|
||||
|
||||
def add_feature(self, jid, node, data=None):
|
||||
def add_feature(self, jid, node, data):
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['info'].add_feature(data.get('feature', ''))
|
||||
|
||||
def set_features(self, jid, node, data=None):
|
||||
pass
|
||||
def set_features(self, jid, node, data):
|
||||
features = data.get('features', set())
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['info']['features'] = features
|
||||
|
||||
def del_feature(self, jid, node, data=None):
|
||||
def del_feature(self, jid, node, data):
|
||||
if (jid, node) not in self.nodes:
|
||||
return
|
||||
self.nodes[(jid, node)]['info'].del_feature(data.get('feature', ''))
|
||||
|
||||
def add_item(self, jid, node, data=None):
|
||||
def add_item(self, jid, node, data):
|
||||
self.add_node(jid, node)
|
||||
self.nodes[(jid, node)]['items'].add_item(
|
||||
data.get('ijid', ''),
|
||||
node=data.get('inode', None),
|
||||
name=data.get('name', None))
|
||||
|
||||
def del_item(self, jid, node, data=None):
|
||||
def del_item(self, jid, node, data):
|
||||
if (jid, node) in self.nodes:
|
||||
self.nodes[(jid, node)]['items'].del_item(**data)
|
||||
self.nodes[(jid, node)]['items'].del_item(
|
||||
data.get('ijid', ''),
|
||||
node=data.get('inode', None))
|
||||
|
|
Loading…
Reference in a new issue