diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0016')
-rw-r--r-- | sleekxmpp/plugins/xep_0016/__init__.py | 16 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0016/privacy.py | 110 | ||||
-rw-r--r-- | sleekxmpp/plugins/xep_0016/stanza.py | 103 |
3 files changed, 0 insertions, 229 deletions
diff --git a/sleekxmpp/plugins/xep_0016/__init__.py b/sleekxmpp/plugins/xep_0016/__init__.py deleted file mode 100644 index 06704d26..00000000 --- a/sleekxmpp/plugins/xep_0016/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2012 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_0016 import stanza -from sleekxmpp.plugins.xep_0016.stanza import Privacy -from sleekxmpp.plugins.xep_0016.privacy import XEP_0016 - - -register_plugin(XEP_0016) diff --git a/sleekxmpp/plugins/xep_0016/privacy.py b/sleekxmpp/plugins/xep_0016/privacy.py deleted file mode 100644 index 79fd68f0..00000000 --- a/sleekxmpp/plugins/xep_0016/privacy.py +++ /dev/null @@ -1,110 +0,0 @@ -""" - SleekXMPP: The Sleek XMPP Library - Copyright (C) 2011 Nathanael C. Fritz, Lance J.T. Stout - This file is part of SleekXMPP. - - See the file LICENSE for copying permission. -""" - -from sleekxmpp import Iq -from sleekxmpp.xmlstream import register_stanza_plugin -from sleekxmpp.plugins import BasePlugin -from sleekxmpp.plugins.xep_0016 import stanza -from sleekxmpp.plugins.xep_0016.stanza import Privacy, Item - - -class XEP_0016(BasePlugin): - - name = 'xep_0016' - description = 'XEP-0016: Privacy Lists' - dependencies = set(['xep_0030']) - stanza = stanza - - def plugin_init(self): - register_stanza_plugin(Iq, Privacy) - - def plugin_end(self): - self.xmpp['xep_0030'].del_feature(feature=Privacy.namespace) - - def session_bind(self, jid): - self.xmpp['xep_0030'].add_feature(Privacy.namespace) - - def get_privacy_lists(self, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'get' - iq.enable('privacy') - return iq.send(block=block, timeout=timeout, callback=callback) - - def get_list(self, name, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'get' - iq['privacy']['list']['name'] = name - return iq.send(block=block, timeout=timeout, callback=callback) - - def get_active(self, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'get' - iq['privacy'].enable('active') - return iq.send(block=block, timeout=timeout, callback=callback) - - def get_default(self, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'get' - iq['privacy'].enable('default') - return iq.send(block=block, timeout=timeout, callback=callback) - - def activate(self, name, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy']['active']['name'] = name - return iq.send(block=block, timeout=timeout, callback=callback) - - def deactivate(self, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy'].enable('active') - return iq.send(block=block, timeout=timeout, callback=callback) - - def make_default(self, name, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy']['default']['name'] = name - return iq.send(block=block, timeout=timeout, callback=callback) - - def remove_default(self, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy'].enable('default') - return iq.send(block=block, timeout=timeout, callback=callback) - - def edit_list(self, name, rules, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy']['list']['name'] = name - priv_list = iq['privacy']['list'] - - if not rules: - rules = [] - - for rule in rules: - if isinstance(rule, Item): - priv_list.append(rule) - continue - - priv_list.add_item( - rule['value'], - rule['action'], - rule['order'], - itype=rule.get('type', None), - iq=rule.get('iq', None), - message=rule.get('message', None), - presence_in=rule.get('presence_in', - rule.get('presence-in', None)), - presence_out=rule.get('presence_out', - rule.get('presence-out', None))) - - def remove_list(self, name, block=True, timeout=None, callback=None): - iq = self.xmpp.Iq() - iq['type'] = 'set' - iq['privacy']['list']['name'] = name - return iq.send(block=block, timeout=timeout, callback=callback) diff --git a/sleekxmpp/plugins/xep_0016/stanza.py b/sleekxmpp/plugins/xep_0016/stanza.py deleted file mode 100644 index 3f9977fc..00000000 --- a/sleekxmpp/plugins/xep_0016/stanza.py +++ /dev/null @@ -1,103 +0,0 @@ -from sleekxmpp.xmlstream import ET, ElementBase, register_stanza_plugin - - -class Privacy(ElementBase): - name = 'query' - namespace = 'jabber:iq:privacy' - plugin_attrib = 'privacy' - interfaces = set() - - def add_list(self, name): - priv_list = List() - priv_list['name'] = name - self.append(priv_list) - return priv_list - - -class Active(ElementBase): - name = 'active' - namespace = 'jabber:iq:privacy' - plugin_attrib = name - interfaces = set(['name']) - - -class Default(ElementBase): - name = 'default' - namespace = 'jabber:iq:privacy' - plugin_attrib = name - interfaces = set(['name']) - - -class List(ElementBase): - name = 'list' - namespace = 'jabber:iq:privacy' - plugin_attrib = name - plugin_multi_attrib = 'lists' - interfaces = set(['name']) - - def add_item(self, value, action, order, itype=None, iq=False, - message=False, presence_in=False, presence_out=False): - item = Item() - item.values = {'type': itype, - 'value': value, - 'action': action, - 'order': order, - 'message': message, - 'iq': iq, - 'presence_in': presence_in, - 'presence_out': presence_out} - self.append(item) - return item - - -class Item(ElementBase): - name = 'item' - namespace = 'jabber:iq:privacy' - plugin_attrib = name - plugin_multi_attrib = 'items' - interfaces = set(['type', 'value', 'action', 'order', 'iq', - 'message', 'presence_in', 'presence_out']) - bool_interfaces = set(['message', 'iq', 'presence_in', 'presence_out']) - - type_values = ('', 'jid', 'group', 'subscription') - action_values = ('allow', 'deny') - - def set_type(self, value): - if value and value not in self.type_values: - raise ValueError('Unknown type value: %s' % value) - else: - self._set_attr('type', value) - - def set_action(self, value): - if value not in self.action_values: - raise ValueError('Unknown action value: %s' % value) - else: - self._set_attr('action', value) - - def set_presence_in(self, value): - keep = True if value else False - self._set_sub_text('presence-in', '', keep=keep) - - def get_presence_in(self): - pres = self.xml.find('{%s}presence-in' % self.namespace) - return pres is not None - - def del_presence_in(self): - self._del_sub('{%s}presence-in' % self.namespace) - - def set_presence_out(self, value): - keep = True if value else False - self._set_sub_text('presence-in', '', keep=keep) - - def get_presence_out(self): - pres = self.xml.find('{%s}presence-in' % self.namespace) - return pres is not None - - def del_presence_out(self): - self._del_sub('{%s}presence-in' % self.namespace) - - -register_stanza_plugin(Privacy, Active) -register_stanza_plugin(Privacy, Default) -register_stanza_plugin(Privacy, List, iterable=True) -register_stanza_plugin(List, Item, iterable=True) |