diff --git a/sleekxmpp/plugins/xep_0030/disco.py b/sleekxmpp/plugins/xep_0030/disco.py index 92ee5ec..2e993e2 100644 --- a/sleekxmpp/plugins/xep_0030/disco.py +++ b/sleekxmpp/plugins/xep_0030/disco.py @@ -90,6 +90,10 @@ class xep_0030(base_plugin): self.description = 'Service Discovery' self.stanza = sleekxmpp.plugins.xep_0030.stanza + # Retain some backwards compatibility + self.getInfo = self.get_info + self.getItems = self.get_items + self.xmpp.register_handler( Callback('Disco Info', StanzaPath('iq/disco_info'), @@ -248,7 +252,8 @@ class xep_0030(base_plugin): return self._fix_default_info(info) iq = self.xmpp.Iq() - iq['from'] = kwargs.get('ifrom', '') + # Check dfrom parameter for backwards compatibility + iq['from'] = kwargs.get('ifrom', kwargs.get('dfrom', '')) iq['to'] = jid iq['type'] = 'get' iq['disco_info']['node'] = node if node else '' @@ -285,7 +290,8 @@ class xep_0030(base_plugin): return self._run_node_handler('get_items', jid, node, kwargs) iq = self.xmpp.Iq() - iq['from'] = kwargs.get('ifrom', '') + # Check dfrom parameter for backwards compatibility + iq['from'] = kwargs.get('ifrom', kwargs.get('dfrom', '')) iq['to'] = jid iq['type'] = 'get' iq['disco_items']['node'] = node if node else '' @@ -317,7 +323,7 @@ class xep_0030(base_plugin): """ self._run_node_handler('del_items', jid, node, kwargs) - def add_item(self, jid=None, node=None, **kwargs): + def add_item(self, jid=None, name='', node=None, subnode='', ijid=None): """ Add a new item element to the given JID/node combination. @@ -325,12 +331,15 @@ class xep_0030(base_plugin): a node value to reference non-addressable entities. Arguments: - jid -- The JID to modify. - node -- The node to modify. - ijid -- The JID for the item. - inode -- Optional node for the item. + jid -- The JID for the item. name -- Optional name for the item. + node -- The node to modify. + subnode -- Optional node for the item. + ijid -- The JID to modify. """ + kwargs = {'ijid': jid, + 'name': name, + 'inode': subnode} self._run_node_handler('add_item', jid, node, kwargs) def del_item(self, jid=None, node=None, **kwargs): @@ -345,7 +354,7 @@ class xep_0030(base_plugin): """ self._run_node_handler('del_item', jid, node, kwargs) - def add_identity(self, jid=None, node=None, **kwargs): + def add_identity(self, category='', itype='', name='', node=None, jid=None, lang=None): """ Add a new identity to the given JID/node combination. @@ -358,24 +367,29 @@ class xep_0030(base_plugin): names are different. A category and type is always required. Arguments: - jid -- The JID to modify. - node -- The node to modify. category -- The identity's category. itype -- The identity's type. name -- Optional name for the identity. lang -- Optional two-letter language code. + node -- The node to modify. + jid -- The JID to modify. """ + kwargs = {'category': category, + 'itype': itype, + 'name': name, + 'lang': lang} self._run_node_handler('add_identity', jid, node, kwargs) - def add_feature(self, jid=None, node=None, **kwargs): + def add_feature(self, feature, node=None, jid=None): """ Add a feature to a JID/node combination. Arguments: - jid -- The JID to modify. - node -- The node to modify. feature -- The namespace of the supported feature. + node -- The node to modify. + jid -- The JID to modify. """ + kwargs = {'feature': feature} self._run_node_handler('add_feature', jid, node, kwargs) def del_identity(self, jid=None, node=None, **kwargs): diff --git a/tests/test_stream_xep_0030.py b/tests/test_stream_xep_0030.py index 1f98974..25a4102 100644 --- a/tests/test_stream_xep_0030.py +++ b/tests/test_stream_xep_0030.py @@ -406,10 +406,10 @@ class TestStreamDisco(SleekTest): self.xmpp['xep_0030'].make_static(jid='tester@localhost', node='testing') - self.xmpp['xep_0030'].add_item(jid='tester@localhost', + self.xmpp['xep_0030'].add_item(ijid='tester@localhost', node='testing', - ijid='tester@localhost', - inode='foo', + jid='tester@localhost', + subnode='foo', name='Test') self.recv(""" @@ -446,10 +446,10 @@ class TestStreamDisco(SleekTest): self.xmpp['xep_0030'].make_static(jid='user@tester.localhost', node='testing') - self.xmpp['xep_0030'].add_item(jid='user@tester.localhost', + self.xmpp['xep_0030'].add_item(ijid='user@tester.localhost', node='testing', - ijid='user@tester.localhost', - inode='foo', + jid='user@tester.localhost', + subnode='foo', name='Test') self.recv("""