Mercurial > libervia-backend
diff frontends/src/jp/cmd_info.py @ 1414:159d16336f87
core, bridge, jp: management of service discovery extensions (XEP-0128)
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 17 Apr 2015 22:59:35 +0200 |
parents | 069ad98b360d |
children | d17772b0fe22 |
line wrap: on
line diff
--- a/frontends/src/jp/cmd_info.py Fri Apr 17 10:39:41 2015 +0200 +++ b/frontends/src/jp/cmd_info.py Fri Apr 17 22:59:35 2015 +0200 @@ -17,7 +17,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from logging import debug, info, error, warning +from logging import debug, info, warning import base from sat.core.i18n import _ @@ -48,7 +48,7 @@ self.host.bridge.discoItems(jid, profile_key=self.host.profile, callback=lambda items: self.gotItems(infos, items), errback=self.error) def gotItems(self, infos, items): - features, identities = infos + features, identities, extensions = infos features.sort() identities.sort(key=lambda identity: identity[2]) items.sort(key=lambda item: item[2]) @@ -56,30 +56,51 @@ items_lst = [] for identity in identities: category, type_, name = identity - identities_lst.append(u"%(name)s(%(cat)s/%(type)s)" % - {'name': (name+' ') if name else '', - 'cat': category, - 'type': type_}) + identities_lst.append(u"{name}({cat}/{type_})".format( + name = (name+' ') if name else '', + cat = category, + type_ = type_)) for item in items: entity, node_id, name = item - items_lst.append(u"%(name)s[%(entity)s%(node_id)s]" % - {'name': (name+' ') if name else '', - 'entity': entity, - 'node_id': (', ' + node_id) if node_id else '' - }) + items_lst.append(u"{name}[{entity}{node_id}]".format( + name = (name+' ') if name else '', + entity = entity, + node_id = (', ' + node_id) if node_id else '' + )) + extensions_types = extensions.keys() + extensions_types.sort() + + extensions_tpl = [] + for type_ in extensions_types: + fields = [] + for field in extensions[type_]: + field_lines = [] + data, values = field + data_keys = data.keys() + data_keys.sort() + for key in data_keys: + field_lines.append(u'\t{key} = {value}'.format(key=key, value=data[key])) + for value in values: + field_lines.append(u'\tvalue = {value}'.format(value=value)) + fields.append(u'\n'.join(field_lines)) + extensions_tpl.append(u'{type_}\n{fields}'.format(type_=type_, + fields='\n\n'.join(fields))) template = [] if features: - template.append(_(u"Features:\n\n%(features)s")) + template.append(_(u"Features:\n\n{features}")) if identities: - template.append(_(u"Identities:\n\n%(identities)s")) + template.append(_(u"Identities:\n\n{identities}")) + if extensions_tpl: + template.append(_(u'Extensions:\n\n{extensions}')) if items: - template.append(_(u"Items:\n\n%(items)s")) + template.append(_(u"Items:\n\n{items}")) - print "\n--\n".join(template) % { 'features': '\n'.join(features), - 'identities': '\n'.join(identities_lst), - 'items': '\n'.join(items_lst), - } + print "\n--\n".join(template).format ( features = '\n'.join(features), + identities = '\n'.join(identities_lst), + extensions = '\n'.join(extensions_tpl), + items = '\n'.join(items_lst), + ) self.host.quit()