summaryrefslogtreecommitdiff
path: root/sleekxmpp/plugins/xep_0016
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/plugins/xep_0016')
-rw-r--r--sleekxmpp/plugins/xep_0016/__init__.py16
-rw-r--r--sleekxmpp/plugins/xep_0016/privacy.py110
-rw-r--r--sleekxmpp/plugins/xep_0016/stanza.py103
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)