Mercurial > libervia-backend
diff sat_frontends/jp/cmd_message.py @ 2719:45189c8bd165
jp (message/mam): display metadata when verbose
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 10 Dec 2018 20:34:45 +0100 |
parents | 0b5deb9a35fd |
children | 8fd8ce5a5855 |
line wrap: on
line diff
--- a/sat_frontends/jp/cmd_message.py Mon Dec 10 20:34:45 2018 +0100 +++ b/sat_frontends/jp/cmd_message.py Mon Dec 10 20:34:45 2018 +0100 @@ -24,6 +24,7 @@ from sat.core.i18n import _ from sat.tools.utils import clean_ustr from sat.tools.common import data_format +from sat.tools.common.ansi import ANSI as A from functools import partial __commands__ = ["Message"] @@ -157,7 +158,7 @@ def __init__(self, host): super(MAM, self).__init__( - host, "mam", use_output=C.OUTPUT_MESS, help=_(u"query archives using MAM")) + host, "mam", use_output=C.OUTPUT_MESS, use_verbose=True, help=_(u"query archives using MAM")) self.need_loop=True def add_parser_options(self): @@ -177,15 +178,26 @@ "-M", "--max", dest="rsm_max", type=int, default=20, help=_(u"maximum number of items to retrieve, using RSM (default: 20))")) - def _sessionInfosGetCb(self, session_info, data): + def _sessionInfosGetCb(self, session_info, data, metadata): self.host.own_jid = jid.JID(session_info[u"jid"]) self.output(data) + # FIXME: metadata are not displayed correctly and don't play nice with output + # they should be added to output data somehow + if self.verbosity: + for value in (u"rsm_first", u"rsm_last", u"rsm_index", u"rsm_count", + u"mam_complete", u"mam_stable"): + if value in metadata: + label = value.split(u"_")[1] + self.disp(A.color( + C.A_HEADER, label, u': ' , A.RESET, metadata[value])) + self.host.quit() def _MAMGetCb(self, result): - data, profile = result + data, metadata, profile = result self.host.bridge.sessionInfosGet(self.profile, - callback=partial(self._sessionInfosGetCb, data=data), errback=self.errback) + callback=partial(self._sessionInfosGetCb, data=data, metadata=metadata), + errback=self.errback) def start(self): if self.args.mam_start is None: