summaryrefslogtreecommitdiff
path: root/sleekxmpp/basexmpp.py
diff options
context:
space:
mode:
authorBrian Beggs <macdiesel@speakeasy.net>2010-05-12 07:46:07 -0400
committerBrian Beggs <macdiesel@speakeasy.net>2010-05-12 07:46:07 -0400
commit1521a8b5c9d656ef80a4caf3d7daa86f8f504423 (patch)
treebda49cc00690314c4172d570d439223881559196 /sleekxmpp/basexmpp.py
parent70f69c180cb828f0a76b0d9a441c98036cc96fb0 (diff)
parent8515cef11734613267b1b31f543bca620beac864 (diff)
downloadslixmpp-1521a8b5c9d656ef80a4caf3d7daa86f8f504423.tar.gz
slixmpp-1521a8b5c9d656ef80a4caf3d7daa86f8f504423.tar.bz2
slixmpp-1521a8b5c9d656ef80a4caf3d7daa86f8f504423.tar.xz
slixmpp-1521a8b5c9d656ef80a4caf3d7daa86f8f504423.zip
Merge remote branch 'fritzy/master'
Diffstat (limited to 'sleekxmpp/basexmpp.py')
-rw-r--r--sleekxmpp/basexmpp.py26
1 files changed, 11 insertions, 15 deletions
diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py
index cc0f1087..fef8538a 100644
--- a/sleekxmpp/basexmpp.py
+++ b/sleekxmpp/basexmpp.py
@@ -261,27 +261,23 @@ class basexmpp(object):
if not presence['from'].bare in self.roster:
self.roster[jid] = {'groups': [], 'name': '', 'subscription': 'none', 'presence': {}, 'in_roster': False}
if not resource in self.roster[jid]['presence']:
+ if (show == 'available' or show in presence.showtypes):
+ self.event("got_online", presence)
wasoffline = True
- self.roster[jid]['presence'][resource] = {'show': show, 'status': status, 'priority': priority}
- else:
- if self.roster[jid]['presence'][resource].get('show', 'unavailable') == 'unavailable':
- wasoffline = True
- self.roster[jid]['presence'][resource] = {'show': show, 'status': status}
- self.roster[jid]['presence'][resource]['priority'] = priority
+ self.roster[jid]['presence'][resource] = {}
+ if self.roster[jid]['presence'][resource].get('show', 'unavailable') == 'unavailable':
+ wasoffline = True
+ self.roster[jid]['presence'][resource] = {'show': show, 'status': status, 'priority': priority}
name = self.roster[jid].get('name', '')
- if wasoffline and (show == 'available' or show in presence.showtypes):
- self.event("got_online", presence)
- self.event("changed_status", presence)
- elif show == 'unavailable':
+ if show == 'unavailable':
logging.debug("%s %s got offline" % (jid, resource))
- if len(self.roster[jid]['presence']) > 1:
+ if len(self.roster[jid]['presence']):
del self.roster[jid]['presence'][resource]
else:
del self.roster[jid]
- self.event("got_offline", presence)
- self.event("changed_status", presence)
- elif oldroster != self.roster.get(jid, {'presence': {}})['presence'].get(resource, {}):
- self.event("changed_status", presence)
+ if not wasoffline:
+ self.event("got_offline", presence)
+ self.event("changed_status", presence)
name = ''
if name:
name = "(%s) " % name