From efc9489f332cf529e8fb6a24a21a97f08f812f1d Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Wed, 30 May 2018 21:04:02 +0200 Subject: disco plugin: Allow any dataform to be displayed. --- plugins/disco.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/disco.py b/plugins/disco.py index 53da67a8..e2cdd0b0 100644 --- a/plugins/disco.py +++ b/plugins/disco.py @@ -31,23 +31,19 @@ class Plugin(BasePlugin): self.api.information('\n'.join(identities), 'Identities') features = sorted(str(feature) for feature in info['features']) self.api.information('\n'.join(features), 'Features') - for field in info['form']['fields']: - if field['type'] == 'hidden' and field['var'] == 'FORM_TYPE': - value = field['value'] - if 'http://jabber.org/network/serverinfo' not in value: - self.api.information('Unknown form type ā€œ%sā€' % value, 'Error') - return - break + title = 'Server Info' server_info = [] for field in info['form']: var = field['var'] if field['type'] == 'hidden' and var == 'FORM_TYPE': + title = field['value'][0] continue sep = '\n ' + len(var) * ' ' - value = sep.join(field.get_value(convert=False)) + field_value = field.get_value(convert=False) + value = sep.join(field_value) if isinstance(field_value, list) else field_value server_info.append('%s: %s' % (var, value)) if server_info: - self.api.information('\n'.join(server_info), 'Server Info') + self.api.information('\n'.join(server_info), title) def command_disco(self, jid): try: -- cgit v1.2.3