diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0122/stanza.py')
-rw-r--r-- | sleekxmpp/plugins/xep_0122/stanza.py | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/sleekxmpp/plugins/xep_0122/stanza.py b/sleekxmpp/plugins/xep_0122/stanza.py deleted file mode 100644 index bc3c177a..00000000 --- a/sleekxmpp/plugins/xep_0122/stanza.py +++ /dev/null @@ -1,94 +0,0 @@ - -from sleekxmpp.xmlstream import ElementBase, ET - - -class FormValidation(ElementBase): - """ - Validation values for form fields. - - Example: - - <field var='evt.date' type='text-single' label='Event Date/Time'> - <validate xmlns='http://jabber.org/protocol/xdata-validate' - datatype='xs:dateTime'/> - <value>2003-10-06T11:22:00-07:00</value> - </field> - - Questions: - Should this look at the datatype value and convert the range values as appropriate? - Should this stanza provide a pass/fail for a value from the field, or convert field value to datatype? - """ - - namespace = 'http://jabber.org/protocol/xdata-validate' - name = 'validate' - plugin_attrib = 'validate' - interfaces = {'datatype', 'basic', 'open', 'range', 'regex', } - sub_interfaces = {'basic', 'open', 'range', 'regex', } - plugin_attrib_map = {} - plugin_tag_map = {} - - def _add_field(self, name): - self.remove_all() - item_xml = ET.Element('{%s}%s' % (self.namespace, name)) - self.xml.append(item_xml) - return item_xml - - def set_basic(self, value): - if value: - self._add_field('basic') - else: - del self['basic'] - - def set_open(self, value): - if value: - self._add_field('open') - else: - del self['open'] - - def set_regex(self, regex): - if regex: - _regex = self._add_field('regex') - _regex.text = regex - else: - del self['regex'] - - def set_range(self, value, minimum=None, maximum=None): - if value: - _range = self._add_field('range') - _range.attrib['min'] = str(minimum) - _range.attrib['max'] = str(maximum) - else: - del self['range'] - - def remove_all(self, except_tag=None): - for a in self.sub_interfaces: - if a != except_tag: - del self[a] - - def get_basic(self): - present = self.xml.find('{%s}basic' % self.namespace) - return present is not None - - def get_open(self): - present = self.xml.find('{%s}open' % self.namespace) - return present is not None - - def get_regex(self): - present = self.xml.find('{%s}regex' % self.namespace) - if present is not None: - return present.text - - return False - - def get_range(self): - present = self.xml.find('{%s}range' % self.namespace) - if present is not None: - attributes = present.attrib - return_value = dict() - if 'min' in attributes: - return_value['minimum'] = attributes['min'] - if 'max' in attributes: - return_value['maximum'] = attributes['max'] - return return_value - - return False |