diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0319')
-rw-r--r-- | sleekxmpp/plugins/xep_0319/__init__.py | 16 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0319/idle.py | 75 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0319/stanza.py | 28 |
3 files changed, 0 insertions, 119 deletions
diff --git a/sleekxmpp/plugins/xep_0319/__init__.py b/sleekxmpp/plugins/xep_0319/__init__.py deleted file mode 100644 index 4756e63e..00000000 --- a/sleekxmpp/plugins/xep_0319/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from sleekxmpp.plugins.base import register_plugin - -from sleekxmpp.plugins.xep_0319 import stanza -from sleekxmpp.plugins.xep_0319.stanza import Idle -from sleekxmpp.plugins.xep_0319.idle import XEP_0319 - - -register_plugin(XEP_0319) diff --git a/sleekxmpp/plugins/xep_0319/idle.py b/sleekxmpp/plugins/xep_0319/idle.py deleted file mode 100644 index 90456f9f..00000000 --- a/sleekxmpp/plugins/xep_0319/idle.py +++ /dev/null @@ -1,75 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from datetime import datetime, timedelta - -from sleekxmpp.stanza import Presence -from sleekxmpp.plugins import BasePlugin -from sleekxmpp.xmlstream import register_stanza_plugin -from sleekxmpp.xmlstream.handler import Callback -from sleekxmpp.xmlstream.matcher import StanzaPath -from sleekxmpp.plugins.xep_0319 import stanza - - -class XEP_0319(BasePlugin): - name = 'xep_0319' - description = 'XEP-0319: Last User Interaction in Presence' - dependencies = set(['xep_0012']) - stanza = stanza - - def plugin_init(self): - self._idle_stamps = {} - register_stanza_plugin(Presence, stanza.Idle) - self.api.register(self._set_idle, - 'set_idle', - default=True) - self.api.register(self._get_idle, - 'get_idle', - default=True) - self.xmpp.register_handler( - Callback('Idle Presence', - StanzaPath('presence/idle'), - self._idle_presence)) - self.xmpp.add_filter('out', self._stamp_idle_presence) - - def session_bind(self, jid): - self.xmpp['xep_0030'].add_feature('urn:xmpp:idle:1') - - def plugin_end(self): - self.xmpp['xep_0030'].del_feature(feature='urn:xmpp:idle:1') - self.xmpp.del_filter('out', self._stamp_idle_presence) - self.xmpp.remove_handler('Idle Presence') - - def idle(self, jid=None, since=None): - seconds = None - if since is None: - since = datetime.now() - else: - seconds = datetime.now() - since - self.api['set_idle'](jid, None, None, since) - self.xmpp['xep_0012'].set_last_activity(jid=jid, seconds=seconds) - - def active(self, jid=None): - self.api['set_idle'](jid, None, None, None) - self.xmpp['xep_0012'].del_last_activity(jid) - - def _set_idle(self, jid, node, ifrom, data): - self._idle_stamps[jid] = data - - def _get_idle(self, jid, node, ifrom, data): - return self._idle_stamps.get(jid, None) - - def _idle_presence(self, pres): - self.xmpp.event('presence_idle', pres) - - def _stamp_idle_presence(self, stanza): - if isinstance(stanza, Presence): - since = self.api['get_idle'](stanza['from'] or self.xmpp.boundjid) - if since: - stanza['idle']['since'] = since - return stanza diff --git a/sleekxmpp/plugins/xep_0319/stanza.py b/sleekxmpp/plugins/xep_0319/stanza.py deleted file mode 100644 index abfb4f41..00000000 --- a/sleekxmpp/plugins/xep_0319/stanza.py +++ /dev/null @@ -1,28 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2013 Nathanael C. Fritz, Lance J.T. Stout - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -import datetime as dt - -from sleekxmpp.xmlstream import ElementBase -from sleekxmpp.plugins import xep_0082 - - -class Idle(ElementBase): - name = 'idle' - namespace = 'urn:xmpp:idle:1' - plugin_attrib = 'idle' - interfaces = set(['since']) - - def get_since(self): - timestamp = self._get_attr('since') - return xep_0082.parse(timestamp) - - def set_since(self, value): - if isinstance(value, dt.datetime): - value = xep_0082.format_datetime(value) - self._set_attr('since', value) |