diff --git a/example.py b/example.py index 71979c5..1ffe724 100644 --- a/example.py +++ b/example.py @@ -5,8 +5,12 @@ import logging from optparse import OptionParser import time -reload(sys) -sys.setdefaultencoding('utf8') +import sys + +if sys.version_info < (3,0): + reload(sys) + sys.setdefaultencoding('utf8') + class Example(sleekxmpp.ClientXMPP): diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py index 92f1f9a..9162073 100644 --- a/sleekxmpp/basexmpp.py +++ b/sleekxmpp/basexmpp.py @@ -279,15 +279,15 @@ class basexmpp(object): self.roster[jid]['presence'][resource] = {'show': show, 'status': status} self.roster[jid]['presence'][resource]['priority'] = priority name = self.roster[jid].get('name', '') - if wasoffline and show in ('available', 'away', 'xa', 'na', 'ffc'): + if wasoffline and (show == 'available' or show in presence.showtypes): self.event("got_online", presence) elif not wasoffline and show == 'unavailable': - self.event("got_offline", presence) logging.debug("%s %s got offline" % (jid, resource)) if len(self.roster[jid]['presence']) > 1: del self.roster[jid]['presence'][resource] else: del self.roster[jid] + self.event("got_offline", presence) elif oldroster != self.roster.get(jid, {'presence': {}})['presence'].get(resource, {}): self.event("changed_status", presence) name = '' diff --git a/sleekxmpp/stanza/presence.py b/sleekxmpp/stanza/presence.py index 2bf767d..a631982 100644 --- a/sleekxmpp/stanza/presence.py +++ b/sleekxmpp/stanza/presence.py @@ -6,7 +6,7 @@ from . rootstanza import RootStanza class Presence(RootStanza): interfaces = set(('type', 'to', 'from', 'id', 'status', 'priority')) types = set(('available', 'unavailable', 'error', 'probe', 'subscribe', 'subscribed', 'unsubscribe', 'unsubscribed')) - showtypes = set(('dnd', 'ffc', 'xa', 'away')) + showtypes = set(('dnd', 'chat', 'xa', 'away')) sub_interfaces = set(('status', 'priority')) name = 'presence' namespace = 'jabber:client' diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py index 44f8384..594583a 100644 --- a/sleekxmpp/xmlstream/xmlstream.py +++ b/sleekxmpp/xmlstream/xmlstream.py @@ -154,7 +154,7 @@ class XMLStream(object): def _process(self): "Start processing the socket." firstrun = True - while firstrun or self.state['reconnect']: + while self.run and (firstrun or self.state['reconnect']): self.state.set('processing', True) firstrun = False try: @@ -229,7 +229,7 @@ class XMLStream(object): edepth += 1 def _sendThread(self): - while True: + while self.run: data = self.sendqueue.get(True) logging.debug("SEND: %s" % data) try: