diff options
author | Lance Stout <lancestout@gmail.com> | 2012-07-24 16:48:24 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-07-24 16:48:24 -0700 |
commit | 70883086b7b5c290f220357ba920db504b926008 (patch) | |
tree | 982850ef79fbca3e7db625821f4b8e0ff5ec1434 /sleekxmpp | |
parent | 9a08dfc7d4320638256a58daf6e02a433f1ee91c (diff) | |
download | slixmpp-70883086b7b5c290f220357ba920db504b926008.tar.gz slixmpp-70883086b7b5c290f220357ba920db504b926008.tar.bz2 slixmpp-70883086b7b5c290f220357ba920db504b926008.tar.xz slixmpp-70883086b7b5c290f220357ba920db504b926008.zip |
Modify update_roster() to only change the information provided.
Before: Not specifying the groups, name, etc would remove them from the
roster entry.
After: Any parameters not specified are populated with the current
roster entry's values.
Diffstat (limited to 'sleekxmpp')
-rw-r--r-- | sleekxmpp/clientxmpp.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sleekxmpp/clientxmpp.py b/sleekxmpp/clientxmpp.py index 48637dad..e3b434e9 100644 --- a/sleekxmpp/clientxmpp.py +++ b/sleekxmpp/clientxmpp.py @@ -179,8 +179,7 @@ class ClientXMPP(BaseXMPP): self._stream_feature_order.remove((order, name)) self._stream_feature_order.sort() - def update_roster(self, jid, name=None, subscription=None, groups=[], - block=True, timeout=None, callback=None): + def update_roster(self, jid, **kwargs): """Add or change a roster item. :param jid: The JID of the entry to modify. @@ -201,6 +200,16 @@ class ClientXMPP(BaseXMPP): Will be executed when the roster is received. Implies ``block=False``. """ + current = self.client_roster[jid] + + name = kwargs.get('name', current['name']) + subscription = kwargs.get('subscription', current['subscription']) + groups = kwargs.get('groups', current['groups']) + + block = kwargs.get('block', True) + timeout = kwargs.get('timeout', None) + callback = kwargs.get('callback', None) + return self.client_roster.update(jid, name, subscription, groups, block, timeout, callback) |