Source code for slixmpp.plugins.xep_0191.stanza


# Slixmpp: The Slick XMPP Library
# Copyright (C) 2012 Nathanael C. Fritz, Lance J.T. Stout
# This file is part of Slixmpp.
# See the file LICENSE for copying permission.
from slixmpp.xmlstream import ET, ElementBase, JID


[docs] class BlockList(ElementBase): name = 'blocklist' namespace = 'urn:xmpp:blocking' plugin_attrib = 'blocklist' interfaces = {'items'}
[docs] 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
[docs] 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)
[docs] 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)
[docs] class Block(BlockList): name = 'block' plugin_attrib = 'block'
[docs] class Unblock(BlockList): name = 'unblock' plugin_attrib = 'unblock'