From 4d15d4a4eb7d07a83182c02734956ce86a86fd9c Mon Sep 17 00:00:00 2001 From: Goffi Date: Tue, 24 Dec 2013 15:43:22 +0100 Subject: [PATCH] core (xml_tools): dataForm*2XML renamed to dataForm*2XMLUI and now return XMLUI instead of raw XML + submit_id is managed, and session_id is returned if present --- src/plugins/plugin_misc_tarot.py | 6 +++--- src/plugins/plugin_xep_0055.py | 6 +++--- src/plugins/plugin_xep_0077.py | 4 ++-- src/tools/xml_tools.py | 14 +++++++------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/plugins/plugin_misc_tarot.py b/src/plugins/plugin_misc_tarot.py index d927623f..f1a99f5b 100755 --- a/src/plugins/plugin_misc_tarot.py +++ b/src/plugins/plugin_misc_tarot.py @@ -22,7 +22,7 @@ from twisted.words.xish import domish from twisted.words.protocols.jabber import jid from wokkel import data_form -from sat.tools.xml_tools import dataForm2XML +from sat.tools.xml_tools import dataForm2XMLUI from sat_frontends.tools.games import TarotCard from time import time import random @@ -474,7 +474,7 @@ class Tarot(object): elif elt.name == 'contrat': # it's time to choose contrat form = data_form.Form.fromElement(elt.firstChildElement()) - xml_data = dataForm2XML(form) + xml_data = dataForm2XMLUI(form, "").toXml() self.host.bridge.tarotGameChooseContrat(room_jid.userhost(), xml_data, profile) elif elt.name == 'contrat_choosed': @@ -613,7 +613,7 @@ class Tarot(object): for looser in elt.elements(name='looser', uri=NS_CG): loosers.append(unicode(looser)) form = data_form.Form.fromElement(form_elt) - xml_data = dataForm2XML(form) + xml_data = dataForm2XMLUI(form, "").toXml() self.host.bridge.tarotGameScore(room_jid.userhost(), xml_data, winners, loosers, profile) elif elt.name == 'error': if elt['type'] == 'invalid_cards': diff --git a/src/plugins/plugin_xep_0055.py b/src/plugins/plugin_xep_0055.py index 536d1bc6..a60706df 100644 --- a/src/plugins/plugin_xep_0055.py +++ b/src/plugins/plugin_xep_0055.py @@ -22,7 +22,7 @@ from twisted.words.protocols.jabber.xmlstream import IQ from twisted.words.protocols.jabber import jid from wokkel import data_form from sat.core.exceptions import DataError -from sat.tools.xml_tools import dataForm2XML, dataFormResult2XML +from sat.tools.xml_tools import dataForm2XMLUI, dataFormResult2XMLUI NS_SEARCH = 'jabber:iq:search' @@ -79,7 +79,7 @@ class XEP_0055(object): info(_("No data form found")) raise NotImplementedError("Only search through data form is implemented so far") parsed_form = data_form.Form.fromElement(form_elt) - return dataForm2XML(parsed_form) + return dataForm2XMLUI(parsed_form, "").toXml() def _fieldsErr(self, failure, profile): """ Called when something is wrong with fields request """ @@ -119,7 +119,7 @@ class XEP_0055(object): except StopIteration: info(_("No data form found")) raise NotImplementedError("Only search through data form is implemented so far") - xmlui = dataFormResult2XML(form_elt) + xmlui = dataFormResult2XMLUI(form_elt).toXml() print "=== XMLUI ===\n%s\n\n" % xmlui return xmlui diff --git a/src/plugins/plugin_xep_0077.py b/src/plugins/plugin_xep_0077.py index f38d4393..fd6cbcac 100755 --- a/src/plugins/plugin_xep_0077.py +++ b/src/plugins/plugin_xep_0077.py @@ -20,7 +20,7 @@ from logging import debug, info, error from twisted.words.protocols.jabber import jid from twisted.words.protocols.jabber.xmlstream import IQ -from sat.tools.xml_tools import dataForm2XML +from sat.tools.xml_tools import dataForm2XMLUI from wokkel import data_form @@ -63,7 +63,7 @@ class XEP_0077(object): return form = data_form.Form.fromElement(x_elem) - xml_data = dataForm2XML(form) + xml_data = dataForm2XMLUI(form, "").toXml() self.host.bridge.actionResult("XMLUI", answer['id'], {"target": answer["from"], "type": "registration", "xml": xml_data}, profile) def reg_err(self, failure, profile): diff --git a/src/tools/xml_tools.py b/src/tools/xml_tools.py index 6c588857..f5b08730 100644 --- a/src/tools/xml_tools.py +++ b/src/tools/xml_tools.py @@ -26,10 +26,10 @@ from sat.core import exceptions """This library help manage XML used in SàT (parameters, registration, etc) """ -def dataForm2XML(form): +def dataForm2XMLUI(form, submit_id, session_id=None): """Take a data form (xep-0004, Wokkel's implementation) and convert it to a SàT xml""" - form_ui = XMLUI("form", "vertical") + form_ui = XMLUI("form", "vertical", submit_id=submit_id, session_id=session_id) if form.instructions: form_ui.addText('\n'.join(form.instructions), 'instructions') @@ -59,12 +59,12 @@ def dataForm2XML(form): form_ui.addEmpty() form_ui.addElement(__field_type, field.var, field.value, [option.value for option in field.options]) - return form_ui.toXml() + return form_ui def dataFormResult2AdvancedList(form_ui, form_xml): """Take a raw data form (not parsed by XEP-0004) and convert it to an advanced list raw data form is used because Wokkel doesn't manage result items parsing yet - @param form_ui: the XMLUI where the AdvancedList will be added² + @param form_ui: the XMLUI where the AdvancedList will be added @param form_xml: domish.Element of the data form @return: AdvancedList element """ @@ -105,16 +105,16 @@ def dataFormResult2AdvancedList(form_ui, form_xml): return form_ui.addAdvancedList(None, headers, items) -def dataFormResult2XML(form_xml): +def dataFormResult2XMLUI(form_xml, session_id=None): """Take a raw data form (not parsed by XEP-0004) and convert it to a SàT XMLUI raw data form is used because Wokkel doesn't manage result items parsing yet @param form_xml: domish.Element of the data form @return: XMLUI interface """ - form_ui = XMLUI("window", "vertical") + form_ui = XMLUI("window", "vertical", session_id=session_id) dataFormResult2AdvancedList(form_ui, form_xml) - return form_ui.toXml() + return form_ui def tupleList2dataForm(values): """convert a list of tuples (name,value) to a wokkel submit data form"""