diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0152')
-rw-r--r-- | sleekxmpp/plugins/xep_0152/__init__.py | 16 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0152/reachability.py | 93 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0152/stanza.py | 29 |
3 files changed, 0 insertions, 138 deletions
diff --git a/sleekxmpp/plugins/xep_0152/__init__.py b/sleekxmpp/plugins/xep_0152/__init__.py deleted file mode 100644 index 7de031b7..00000000 --- a/sleekxmpp/plugins/xep_0152/__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_0152 import stanza -from sleekxmpp.plugins.xep_0152.stanza import Reachability -from sleekxmpp.plugins.xep_0152.reachability import XEP_0152 - - -register_plugin(XEP_0152) diff --git a/sleekxmpp/plugins/xep_0152/reachability.py b/sleekxmpp/plugins/xep_0152/reachability.py deleted file mode 100644 index 4cf81739..00000000 --- a/sleekxmpp/plugins/xep_0152/reachability.py +++ /dev/null @@ -1,93 +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 logging - -from sleekxmpp.plugins.base import BasePlugin -from sleekxmpp.plugins.xep_0152 import stanza, Reachability - - -log = logging.getLogger(__name__) - - -class XEP_0152(BasePlugin): - - """ - XEP-0152: Reachability Addresses - """ - - name = 'xep_0152' - description = 'XEP-0152: Reachability Addresses' - dependencies = set(['xep_0163']) - stanza = stanza - - def plugin_end(self): - self.xmpp['xep_0030'].del_feature(feature=Reachability.namespace) - self.xmpp['xep_0163'].remove_interest(Reachability.namespace) - - def session_bind(self, jid): - self.xmpp['xep_0163'].register_pep('reachability', Reachability) - - def publish_reachability(self, addresses, options=None, - ifrom=None, block=True, callback=None, timeout=None): - """ - Publish alternative addresses where the user can be reached. - - Arguments: - addresses -- A list of dictionaries containing the URI and - optional description for each address. - options -- Optional form of publish options. - ifrom -- Specify the sender's JID. - block -- Specify if the send call will block until a response - is received, or a timeout occurs. Defaults to True. - timeout -- The length of time (in seconds) to wait for a response - before exiting the send call if blocking is used. - Defaults to sleekxmpp.xmlstream.RESPONSE_TIMEOUT - callback -- Optional reference to a stream handler function. Will - be executed when a reply stanza is received. - """ - if not isinstance(addresses, (list, tuple)): - addresses = [addresses] - reach = Reachability() - for address in addresses: - if not hasattr(address, 'items'): - address = {'uri': address} - - addr = stanza.Address() - for key, val in address.items(): - addr[key] = val - reach.append(addr) - return self.xmpp['xep_0163'].publish(reach, - node=Reachability.namespace, - options=options, - ifrom=ifrom, - block=block, - callback=callback, - timeout=timeout) - - def stop(self, ifrom=None, block=True, callback=None, timeout=None): - """ - Clear existing user activity information to stop notifications. - - Arguments: - ifrom -- Specify the sender's JID. - block -- Specify if the send call will block until a response - is received, or a timeout occurs. Defaults to True. - timeout -- The length of time (in seconds) to wait for a response - before exiting the send call if blocking is used. - Defaults to sleekxmpp.xmlstream.RESPONSE_TIMEOUT - callback -- Optional reference to a stream handler function. Will - be executed when a reply stanza is received. - """ - reach = Reachability() - return self.xmpp['xep_0163'].publish(reach, - node=Reachability.namespace, - ifrom=ifrom, - block=block, - callback=callback, - timeout=timeout) diff --git a/sleekxmpp/plugins/xep_0152/stanza.py b/sleekxmpp/plugins/xep_0152/stanza.py deleted file mode 100644 index bd173ce1..00000000 --- a/sleekxmpp/plugins/xep_0152/stanza.py +++ /dev/null @@ -1,29 +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.xmlstream import ElementBase, register_stanza_plugin - - -class Reachability(ElementBase): - name = 'reach' - namespace = 'urn:xmpp:reach:0' - plugin_attrib = 'reach' - interfaces = set() - - -class Address(ElementBase): - name = 'addr' - namespace = 'urn:xmpp:reach:0' - plugin_attrib = 'address' - plugin_multi_attrib = 'addresses' - interfaces = set(['uri', 'desc']) - lang_interfaces = set(['desc']) - sub_interfaces = set(['desc']) - - -register_stanza_plugin(Reachability, Address, iterable=True) |