diff options
author | Lance Stout <lancestout@gmail.com> | 2012-07-16 20:13:35 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-07-16 20:13:35 -0700 |
commit | 78f03253983779673beaf3c102ae315707a49d2c (patch) | |
tree | dd5c031b2fc96c88e3d03b7f21cb275ef937398c /sleekxmpp/plugins/xep_0191/stanza.py | |
parent | 1efe04995941933e7579efffd8f325d8c4b516ef (diff) | |
parent | f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2 (diff) | |
download | slixmpp-78f03253983779673beaf3c102ae315707a49d2c.tar.gz slixmpp-78f03253983779673beaf3c102ae315707a49d2c.tar.bz2 slixmpp-78f03253983779673beaf3c102ae315707a49d2c.tar.xz slixmpp-78f03253983779673beaf3c102ae315707a49d2c.zip |
Merge branch 'master' into develop
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' |