Source code for slixmpp.plugins.xep_0077.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 __future__ import unicode_literals

from slixmpp.xmlstream import ElementBase, ET


[docs] class Register(ElementBase): namespace = 'jabber:iq:register' name = 'query' plugin_attrib = 'register' interfaces = {'username', 'password', 'email', 'nick', 'name', 'first', 'last', 'address', 'city', 'state', 'zip', 'phone', 'url', 'date', 'misc', 'text', 'key', 'registered', 'remove', 'instructions', 'fields'} sub_interfaces = interfaces form_fields = {'username', 'password', 'email', 'nick', 'name', 'first', 'last', 'address', 'city', 'state', 'zip', 'phone', 'url', 'date', 'misc', 'text', 'key'}
[docs] def get_registered(self): present = self.xml.find('{%s}registered' % self.namespace) return present is not None
[docs] def get_remove(self): present = self.xml.find('{%s}remove' % self.namespace) return present is not None
[docs] def set_registered(self, value): if value: self.add_field('registered') else: del self['registered']
[docs] def set_remove(self, value): if value: self.add_field('remove') else: del self['remove']
[docs] def add_field(self, value): self._set_sub_text(value, '', keep=True)
[docs] def get_fields(self): fields = set() for field in self.form_fields: if self.xml.find('{%s}%s' % (self.namespace, field)) is not None: fields.add(field) return fields
[docs] def set_fields(self, fields): del self['fields'] for field in fields: self._set_sub_text(field, '', keep=True)
[docs] def del_fields(self): for field in self.form_fields: self._del_sub(field)
[docs] class RegisterFeature(ElementBase): name = 'register' namespace = 'http://jabber.org/features/iq-register' plugin_attrib = name interfaces = set()