diff options
Diffstat (limited to 'sleekxmpp/roster/single.py')
-rw-r--r-- | sleekxmpp/roster/single.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sleekxmpp/roster/single.py b/sleekxmpp/roster/single.py index f8c9c781..e9ce4f21 100644 --- a/sleekxmpp/roster/single.py +++ b/sleekxmpp/roster/single.py @@ -89,8 +89,11 @@ class RosterNode(object): A new item entry will be created if one does not already exist. """ - if isinstance(key, JID): - key = key.bare + if key is None: + key = JID('') + if not isinstance(key, JID): + key = JID(key) + key = key.bare if key not in self._jids: self.add(key, save=True) return self._jids[key] @@ -101,8 +104,11 @@ class RosterNode(object): To remove an item from the server, use the remove() method. """ - if isinstance(key, JID): - key = key.bare + if key is None: + key = JID('') + if not isinstance(key, JID): + key = JID(key) + key = key.bare if key in self._jids: del self._jids[key] @@ -231,8 +237,7 @@ class RosterNode(object): if not self.xmpp.is_component: return self.update(jid, subscription='remove') - def update(self, jid, name=None, subscription=None, groups=[], - block=True, timeout=None, callback=None): + def update(self, jid, name=None, subscription=None, groups=None, block=True, timeout=None, callback=None): """ Update a JID's subscription information. @@ -252,6 +257,9 @@ class RosterNode(object): Will be executed when the roster is received. Implies block=False. """ + if not groups: + groups = [] + self[jid]['name'] = name self[jid]['groups'] = groups self[jid].save() |