diff options
author | Lance Stout <lancestout@gmail.com> | 2012-07-16 20:10:14 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-07-16 20:10:14 -0700 |
commit | f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2 (patch) | |
tree | e2aed7822e53c19a87658af23dd5bb5a4cbd4516 /sleekxmpp/plugins/xep_0191/stanza.py | |
parent | 51fee28bf4941dfcb2471aea0b1ed8b69a4128d6 (diff) | |
download | slixmpp-f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2.tar.gz slixmpp-f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2.tar.bz2 slixmpp-f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2.tar.xz slixmpp-f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2.zip |
Add plugin for XEP-0191: Simple Communications Blocking
Diffstat (limited to 'sleekxmpp/plugins/xep_0191/stanza.py')
-rw-r--r-- | sleekxmpp/plugins/xep_0191/stanza.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/sleekxmpp/plugins/xep_0191/stanza.py b/sleekxmpp/plugins/xep_0191/stanza.py new file mode 100644 index 00000000..c5a284bd --- /dev/null +++ b/sleekxmpp/plugins/xep_0191/stanza.py @@ -0,0 +1,50 @@ +""" + 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.xmlstream import ET, ElementBase, JID + + +class BlockList(ElementBase): + name = 'blocklist' + namespace = 'urn:xmpp:blocking' + plugin_attrib = 'blocklist' + interfaces = set(['items']) + + def get_items(self): + result = set() + items = self.xml.findall('{%s}item' % self.namespace) + if items is not None: + for item in items: + jid = JID(item.attrib.get('jid', '')) + if jid: + result.add(jid) + return result + + def set_items(self, values): + self.del_items() + for jid in values: + if jid: + item = ET.Element('{%s}item' % self.namespace) + item.attrib['jid'] = JID(jid).full + self.xml.append(item) + + def del_items(self): + items = self.xml.findall('{%s}item' % self.namespace) + if items is not None: + for item in items: + self.xml.remove(item) + + +class Block(BlockList): + name = 'block' + plugin_attrib = 'block' + + +class Unblock(BlockList): + name = 'unblock' + plugin_attrib = 'unblock' |