diff options
author | Lance Stout <lancestout@gmail.com> | 2012-06-19 21:50:33 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-06-19 21:50:33 -0700 |
commit | 5820d49cd401a1362a8a675c4b91935adb1240fe (patch) | |
tree | f40f78839ae3004bfb0b8da1ae93d61759d8ad66 /sleekxmpp/roster/item.py | |
parent | 1ab66e576786ecb0cfb9b6b163811735564b951b (diff) | |
parent | 36c11ad9de7c1b5a199aa5a4302e33085513c126 (diff) | |
download | slixmpp-5820d49cd401a1362a8a675c4b91935adb1240fe.tar.gz slixmpp-5820d49cd401a1362a8a675c4b91935adb1240fe.tar.bz2 slixmpp-5820d49cd401a1362a8a675c4b91935adb1240fe.tar.xz slixmpp-5820d49cd401a1362a8a675c4b91935adb1240fe.zip |
Merge branch 'master' into develop
Conflicts:
sleekxmpp/basexmpp.py
Diffstat (limited to 'sleekxmpp/roster/item.py')
-rw-r--r-- | sleekxmpp/roster/item.py | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/sleekxmpp/roster/item.py b/sleekxmpp/roster/item.py index 6ed1e42d..6e9c0d01 100644 --- a/sleekxmpp/roster/item.py +++ b/sleekxmpp/roster/item.py @@ -307,34 +307,29 @@ class RosterItem(object): p['from'] = self.owner p.send() - def send_presence(self, ptype=None, pshow=None, pstatus=None, - ppriority=None, pnick=None): + def send_presence(self, **kwargs): """ Create, initialize, and send a Presence stanza. + If no recipient is specified, send the presence immediately. + Otherwise, forward the send request to the recipient's roster + entry for processing. + Arguments: pshow -- The presence's show value. pstatus -- The presence's status message. ppriority -- This connections' priority. + pto -- The recipient of a directed presence. + pfrom -- The sender of a directed presence, which should + be the owner JID plus resource. ptype -- The type of presence, such as 'subscribe'. pnick -- Optional nickname of the presence's sender. """ - p = self.xmpp.make_presence(pshow=pshow, - pstatus=pstatus, - ppriority=ppriority, - ptype=ptype, - pnick=pnick, - pto=self.jid) - if self.xmpp.is_component: - p['from'] = self.owner - if p['type'] in p.showtypes or \ - p['type'] in ['available', 'unavailable']: - self.last_status = p - p.send() - - if not self.xmpp.sentpresence: - self.xmpp.event('sent_presence') - self.xmpp.sentpresence = True + if self.xmpp.is_component and not kwargs.get('pfrom', ''): + kwargs['pfrom'] = self.owner + if not kwargs.get('pto', ''): + kwargs['pto'] = self.jid + self.xmpp.send_presence(**kwargs) def send_last_presence(self): if self.last_status is None: |