diff options
Diffstat (limited to 'sleekxmpp/plugins/xep_0004/stanza/field.py')
-rw-r--r-- | sleekxmpp/plugins/xep_0004/stanza/field.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sleekxmpp/plugins/xep_0004/stanza/field.py b/sleekxmpp/plugins/xep_0004/stanza/field.py index 8131233c..1e175966 100644 --- a/sleekxmpp/plugins/xep_0004/stanza/field.py +++ b/sleekxmpp/plugins/xep_0004/stanza/field.py @@ -79,19 +79,21 @@ class FormField(ElementBase): reqXML = self.xml.find('{%s}required' % self.namespace) return reqXML is not None - def get_value(self): + def get_value(self, convert=True): valsXML = self.xml.findall('{%s}value' % self.namespace) if len(valsXML) == 0: return None elif self._type == 'boolean': - return valsXML[0].text in self.true_values + if convert: + return valsXML[0].text in self.true_values + return valsXML[0].text elif self._type in self.multi_value_types or len(valsXML) > 1: values = [] for valXML in valsXML: if valXML.text is None: valXML.text = '' values.append(valXML.text) - if self._type == 'text-multi': + if self._type == 'text-multi' and convert: values = "\n".join(values) return values else: @@ -136,6 +138,8 @@ class FormField(ElementBase): valXML.text = '0' self.xml.append(valXML) elif self._type in self.multi_value_types or self._type in ('', None): + if isinstance(value, bool): + value = [value] if not isinstance(value, list): value = value.replace('\r', '') value = value.split('\n') |