comparison sat_frontends/jp/cmd_message.py @ 2819:fd45089b3a92

jp (message/mam): added missing RSM options
author Goffi <goffi@goffi.org>
date Fri, 01 Mar 2019 12:11:16 +0100
parents 003b8b4b56a7
children 0ae25883e223
comparison
equal deleted inserted replaced
2818:9a7cb32836c6 2819:fd45089b3a92
222 "-W", "--with", dest="mam_with", type=base.unicode_decoder, 222 "-W", "--with", dest="mam_with", type=base.unicode_decoder,
223 help=_(u"retrieve only archives with this jid")) 223 help=_(u"retrieve only archives with this jid"))
224 self.parser.add_argument( 224 self.parser.add_argument(
225 "-m", "--max", dest="rsm_max", type=int, default=20, 225 "-m", "--max", dest="rsm_max", type=int, default=20,
226 help=_(u"maximum number of items to retrieve, using RSM (default: 20))")) 226 help=_(u"maximum number of items to retrieve, using RSM (default: 20))"))
227 rsm_page_group = self.parser.add_mutually_exclusive_group()
228 rsm_page_group.add_argument(
229 "-a", "--after", dest="rsm_after", type=base.unicode_decoder,
230 help=_(u"find page after this item"), metavar='ITEM_ID')
231 rsm_page_group.add_argument(
232 "-b", "--before", dest="rsm_before", type=base.unicode_decoder,
233 help=_(u"find page before this item"), metavar='ITEM_ID')
234 rsm_page_group.add_argument(
235 "--index", dest="rsm_index", type=int,
236 help=_(u"index of the page to retrieve"))
227 237
228 def _sessionInfosGetCb(self, session_info, data, metadata): 238 def _sessionInfosGetCb(self, session_info, data, metadata):
229 self.host.own_jid = jid.JID(session_info[u"jid"]) 239 self.host.own_jid = jid.JID(session_info[u"jid"])
230 self.output(data) 240 self.output(data)
231 # FIXME: metadata are not displayed correctly and don't play nice with output 241 # FIXME: metadata are not displayed correctly and don't play nice with output
254 } 264 }
255 if self.args.mam_end is not None: 265 if self.args.mam_end is not None:
256 extra[u"mam_end"] = float(self.args.mam_end) 266 extra[u"mam_end"] = float(self.args.mam_end)
257 if self.args.mam_with is not None: 267 if self.args.mam_with is not None:
258 extra[u"mam_with"] = self.args.mam_with 268 extra[u"mam_with"] = self.args.mam_with
259 if self.args.rsm_max is not None: 269 for suff in ('max', 'after', 'before', 'index'):
260 extra[u"rsm_max"] = self.args.rsm_max 270 key = u'rsm_' + suff
271 value = getattr(self.args,key)
272 if value is not None:
273 extra[key] = unicode(value)
261 self.host.bridge.MAMGet( 274 self.host.bridge.MAMGet(
262 self.args.service, data_format.serialise(extra), self.profile, 275 self.args.service, data_format.serialise(extra), self.profile,
263 callback=self._MAMGetCb, errback=self.errback) 276 callback=self._MAMGetCb, errback=self.errback)
264 277
265 278