core (memory/disco): normalise booleans in extensions

This commit is contained in:
Goffi 2018-12-01 14:40:32 +01:00
commit 13cfba0f8a

View file

@ -392,6 +392,7 @@ class Discovery(object):
entity = jid.JID(entity_jid_s)
disco_infos = yield self.getInfos(client, entity, node, use_cache)
extensions = {}
# FIXME: should extensions be serialised using tools.common.data_format?
for form_type, form in disco_infos.extensions.items():
fields = []
for field in form.fieldList:
@ -402,20 +403,17 @@ class Discovery(object):
data[attr] = value
values = [field.value] if field.value is not None else field.values
if field.fieldType == u"boolean":
values = [C.boolConst(C.bool(v)) for v in values]
fields.append((data, values))
extensions[form_type or ""] = fields
defer.returnValue(
(
disco_infos.features,
[
(cat, type_, name or "")
for (cat, type_), name in disco_infos.identities.items()
],
extensions,
)
)
defer.returnValue((
disco_infos.features,
[(cat, type_, name or "")
for (cat, type_), name in disco_infos.identities.items()],
extensions))
def items2tuples(self, disco_items):
"""convert disco items to tuple of strings