diff options
Diffstat (limited to 'sleekxmpp/roster')
-rw-r--r-- | sleekxmpp/roster/multi.py | 2 | ||||
-rw-r--r-- | sleekxmpp/roster/single.py | 11 |
2 files changed, 13 insertions, 0 deletions
diff --git a/sleekxmpp/roster/multi.py b/sleekxmpp/roster/multi.py index 36c7e2ad..28876814 100644 --- a/sleekxmpp/roster/multi.py +++ b/sleekxmpp/roster/multi.py @@ -68,6 +68,8 @@ class Roster(object): """ if isinstance(key, JID): key = key.bare + if key is None: + key = self.xmpp.boundjid.bare if key not in self._rosters: self.add(key) self._rosters[key].auto_authorize = self.auto_authorize diff --git a/sleekxmpp/roster/single.py b/sleekxmpp/roster/single.py index 903333a3..c2f8e763 100644 --- a/sleekxmpp/roster/single.py +++ b/sleekxmpp/roster/single.py @@ -286,5 +286,16 @@ class RosterNode(object): self.xmpp.event('sent_presence') self.xmpp.sentpresence = True + def send_last_presence(self): + if self.last_status is None: + self.send_presence() + else: + pres = self.last_status + if self.xmpp.is_component: + pres['from'] = self.jid + else: + del pres['from'] + pres.send() + def __repr__(self): return repr(self._jids) |