Mercurial > libervia-backend
comparison 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 |
comparison
equal
deleted
inserted
replaced
2718:bb6adaa580ee | 2719:45189c8bd165 |
---|---|
22 from sat_frontends.jp.constants import Const as C | 22 from sat_frontends.jp.constants import Const as C |
23 from sat_frontends.tools import jid | 23 from sat_frontends.tools import jid |
24 from sat.core.i18n import _ | 24 from sat.core.i18n import _ |
25 from sat.tools.utils import clean_ustr | 25 from sat.tools.utils import clean_ustr |
26 from sat.tools.common import data_format | 26 from sat.tools.common import data_format |
27 from sat.tools.common.ansi import ANSI as A | |
27 from functools import partial | 28 from functools import partial |
28 | 29 |
29 __commands__ = ["Message"] | 30 __commands__ = ["Message"] |
30 | 31 |
31 | 32 |
155 | 156 |
156 class MAM(base.CommandBase): | 157 class MAM(base.CommandBase): |
157 | 158 |
158 def __init__(self, host): | 159 def __init__(self, host): |
159 super(MAM, self).__init__( | 160 super(MAM, self).__init__( |
160 host, "mam", use_output=C.OUTPUT_MESS, help=_(u"query archives using MAM")) | 161 host, "mam", use_output=C.OUTPUT_MESS, use_verbose=True, help=_(u"query archives using MAM")) |
161 self.need_loop=True | 162 self.need_loop=True |
162 | 163 |
163 def add_parser_options(self): | 164 def add_parser_options(self): |
164 self.parser.add_argument( | 165 self.parser.add_argument( |
165 "-s", "--service", type=base.unicode_decoder, default=u"", | 166 "-s", "--service", type=base.unicode_decoder, default=u"", |
175 help=_(u"retrieve only archives with this jid")) | 176 help=_(u"retrieve only archives with this jid")) |
176 self.parser.add_argument( | 177 self.parser.add_argument( |
177 "-M", "--max", dest="rsm_max", type=int, default=20, | 178 "-M", "--max", dest="rsm_max", type=int, default=20, |
178 help=_(u"maximum number of items to retrieve, using RSM (default: 20))")) | 179 help=_(u"maximum number of items to retrieve, using RSM (default: 20))")) |
179 | 180 |
180 def _sessionInfosGetCb(self, session_info, data): | 181 def _sessionInfosGetCb(self, session_info, data, metadata): |
181 self.host.own_jid = jid.JID(session_info[u"jid"]) | 182 self.host.own_jid = jid.JID(session_info[u"jid"]) |
182 self.output(data) | 183 self.output(data) |
184 # FIXME: metadata are not displayed correctly and don't play nice with output | |
185 # they should be added to output data somehow | |
186 if self.verbosity: | |
187 for value in (u"rsm_first", u"rsm_last", u"rsm_index", u"rsm_count", | |
188 u"mam_complete", u"mam_stable"): | |
189 if value in metadata: | |
190 label = value.split(u"_")[1] | |
191 self.disp(A.color( | |
192 C.A_HEADER, label, u': ' , A.RESET, metadata[value])) | |
193 | |
183 self.host.quit() | 194 self.host.quit() |
184 | 195 |
185 def _MAMGetCb(self, result): | 196 def _MAMGetCb(self, result): |
186 data, profile = result | 197 data, metadata, profile = result |
187 self.host.bridge.sessionInfosGet(self.profile, | 198 self.host.bridge.sessionInfosGet(self.profile, |
188 callback=partial(self._sessionInfosGetCb, data=data), errback=self.errback) | 199 callback=partial(self._sessionInfosGetCb, data=data, metadata=metadata), |
200 errback=self.errback) | |
189 | 201 |
190 def start(self): | 202 def start(self): |
191 if self.args.mam_start is None: | 203 if self.args.mam_start is None: |
192 self.args.mam_start = base.date_decoder(u"-1 day") | 204 self.args.mam_start = base.date_decoder(u"-1 day") |
193 extra = { | 205 extra = { |