diff sat/plugins/plugin_xep_0048.py @ 3040:fee60f17ebac

jp: jp asyncio port: /!\ this commit is huge. Jp is temporarily not working with `dbus` bridge /!\ This patch implements the port of jp to asyncio, so it is now correctly using the bridge asynchronously, and it can be used with bridges like `pb`. This also simplify the code, notably for things which were previously implemented with many callbacks (like pagination with RSM). During the process, some behaviours have been modified/fixed, in jp and backends, check diff for details.
author Goffi <goffi@goffi.org>
date Wed, 25 Sep 2019 08:56:41 +0200
parents ab2696e34d29
children 9d0df638c8b4
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0048.py	Wed Sep 25 08:53:38 2019 +0200
+++ b/sat/plugins/plugin_xep_0048.py	Wed Sep 25 08:56:41 2019 +0200
@@ -241,12 +241,12 @@
             except KeyError:
                 pass
 
-        for url in urls_data:
+        for url, url_data in urls_data.items():
             url_elt = storage_elt.addElement("url")
             url_elt[XEP_0048.URL_KEY] = url
             for attr in XEP_0048.URL_ATTRS:
                 try:
-                    url_elt[attr] = url[attr]
+                    url_elt[attr] = url_data[attr]
                 except KeyError:
                     pass
 
@@ -440,7 +440,10 @@
                 return ret
             data = bookmarks_ori[type_]
             for bookmark in data:
-                ret[_storage_location][bookmark.full()] = data[bookmark].copy()
+                if type_ == XEP_0048.MUC_TYPE:
+                    ret[_storage_location][bookmark.full()] = data[bookmark].copy()
+                else:
+                    ret[_storage_location][bookmark] = data[bookmark].copy()
             return ret
 
         for _storage_location in ("local", "private", "pubsub"):