changeset 3356:569f4cf7183b

plugin XEP-0313: fixed `MAMGet` signature
author Goffi <goffi@goffi.org>
date Thu, 17 Sep 2020 10:46:13 +0200
parents 33d9b38b5890
children 40794e658d68
files sat/plugins/plugin_xep_0313.py sat_frontends/jp/cmd_message.py
diffstat 2 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0313.py	Mon Sep 14 09:23:23 2020 +0200
+++ b/sat/plugins/plugin_xep_0313.py	Thu Sep 17 10:46:13 2020 +0200
@@ -69,7 +69,7 @@
         self._last_stanza_id_d.callback(None)
         host.bridge.addMethod(
             "MAMGet", ".plugin", in_sign='sss',
-            out_sign='(a(sdssa{ss}a{ss}sa{ss})a{ss}s)', method=self._getArchives,
+            out_sign='(a(sdssa{ss}a{ss}ss)ss)', method=self._getArchives,
             async_=True)
 
     @defer.inlineCallbacks
@@ -331,7 +331,7 @@
             'rsm': self._rsm.response2dict(rsm_response),
             'mam': mam_response
         }
-        return mess_list, metadata, client.profile
+        return mess_list, data_format.serialise(metadata), client.profile
 
     def _getArchives(self, service, extra_ser, profile_key):
         """
--- a/sat_frontends/jp/cmd_message.py	Mon Sep 14 09:23:23 2020 +0200
+++ b/sat_frontends/jp/cmd_message.py	Thu Sep 17 10:46:13 2020 +0200
@@ -236,12 +236,14 @@
             if value is not None:
                 extra[key] = str(value)
         try:
-            data, metadata, profile = await self.host.bridge.MAMGet(
+            data, metadata_s, profile = await self.host.bridge.MAMGet(
                 self.args.service, data_format.serialise(extra), self.profile)
         except Exception as e:
             self.disp(f"can't retrieve MAM archives: {e}", error=True)
             self.host.quit(C.EXIT_BRIDGE_ERRBACK)
 
+        metadata = data_format.deserialise(metadata_s)
+
         try:
             session_info = await self.host.bridge.sessionInfosGet(self.profile)
         except Exception as e: