From ac1d76b23d7d4137b175e85fbabae94d663a9773 Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Mon, 15 Feb 2010 15:45:57 -0800 Subject: [PATCH 1/2] tweaked presence handler --- sleekxmpp/basexmpp.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sleekxmpp/basexmpp.py b/sleekxmpp/basexmpp.py index 100bef9..26e513a 100644 --- a/sleekxmpp/basexmpp.py +++ b/sleekxmpp/basexmpp.py @@ -267,7 +267,7 @@ class basexmpp(object): wasoffline = True self.roster[jid]['presence'][resource] = {'show': show, 'status': status, 'priority': priority} else: - if self.roster[jid]['presence'][resource].get('show', None) == 'unavailable': + 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 @@ -276,6 +276,7 @@ class basexmpp(object): 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: From 0dcbe92d1e49a9f009b39c39150307e3c15c9f9b Mon Sep 17 00:00:00 2001 From: Nathan Fritz Date: Mon, 15 Feb 2010 21:42:27 -0800 Subject: [PATCH 2/2] got rid of stupid iq set/get/error/result methods --- sleekxmpp/plugins/xep_0060.py | 40 +++++++++++++++++------------------ sleekxmpp/stanza/iq.py | 17 --------------- 2 files changed, 20 insertions(+), 37 deletions(-) diff --git a/sleekxmpp/plugins/xep_0060.py b/sleekxmpp/plugins/xep_0060.py index 999b819..cbc89df 100644 --- a/sleekxmpp/plugins/xep_0060.py +++ b/sleekxmpp/plugins/xep_0060.py @@ -43,9 +43,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is False or result is None or result.get('type') == 'error': return False + if result is False or result is None or result['type'] == 'error': return False return True def subscribe(self, jid, node, bare=True, subscribee=None): @@ -65,7 +65,7 @@ class xep_0060(base.base_plugin): iq.attrib['from'] = self.xmpp.fulljid id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is False or result is None or result.get('type') == 'error': return False + if result is False or result is None or result['type'] == 'error': return False return True def unsubscribe(self, jid, node, bare=True, subscribee=None): @@ -83,9 +83,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is False or result is None or result.get('type') == 'error': return False + if result is False or result is None or result['type'] == 'error': return False return True def getNodeConfig(self, jid, node=None): # if no node, then grab default @@ -101,10 +101,10 @@ class xep_0060(base.base_plugin): iq.append(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] #self.xmpp.add_handler("" % id, self.handlerCreateNodeResponse) result = self.xmpp.send(iq, "" % id) - if result is None or result == False or result.get('type') == 'error': + if result is None or result == False or result['type'] == 'error': logging.warning("got error instead of config") return False if node is not None: @@ -125,9 +125,9 @@ class xep_0060(base.base_plugin): iq.append(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result == False or result.get('type') == 'error': + if result is None or result == False or result['type'] == 'error': logging.warning("got error instead of config") return False else: @@ -148,9 +148,9 @@ class xep_0060(base.base_plugin): iq.append(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result == False or result.get('type') == 'error': + if result is None or result == False or result['type'] == 'error': logging.warning("got error instead of config") return False else: @@ -171,7 +171,7 @@ class xep_0060(base.base_plugin): iq.append(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) if result is not None and result is not False and result.attrib.get('type', 'error') != 'error': return True @@ -189,9 +189,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result.get('type') == 'error': + if result is None or result['type'] == 'error': return False return True @@ -210,9 +210,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result is False or result.get('type') == 'error': return False + if result is None or result is False or result['type'] == 'error': return False return True def deleteItem(self, jid, node, item): @@ -226,9 +226,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result is False or result.get('type') == 'error': return False + if result is None or result is False or result['type'] == 'error': return False return True def addItem(self, jid, node, items=[]): @@ -280,9 +280,9 @@ class xep_0060(base.base_plugin): iq = self.xmpp.makeIqSet(pubsub) iq.attrib['to'] = ps_jid iq.attrib['from'] = self.xmpp.fulljid - id = iq.get('id') + id = iq['id'] result = self.xmpp.send(iq, "" % id) - if result is None or result is False or result.get('type') == 'error': + if result is None or result is False or result['type'] == 'error': return False return True diff --git a/sleekxmpp/stanza/iq.py b/sleekxmpp/stanza/iq.py index 85165e1..e76280b 100644 --- a/sleekxmpp/stanza/iq.py +++ b/sleekxmpp/stanza/iq.py @@ -26,23 +26,6 @@ class Iq(RootStanza): self['error']['text'] = 'No handlers registered for this request.' self.send() - def result(self): - self['type'] = 'result' - return self - - def set(self): - self['type'] = 'set' - return self - - def error(self): - #TODO add error payloads - self['type'] = 'error' - return self - - def get(self): - self['type'] = 'get' - return self - def setPayload(self, value): self.clear() StanzaBase.setPayload(self, value)