diff libervia/web/server/restricted_bridge.py @ 1642:c03297bb8d19

server, browser (forums): Redesign of the forum feature: Forum has been fully redesigned, it now uses pubsub relationships and pubsub extended discovery to handle the hierarchy. Categories lead to topics (which are the name of the items of a blog-like nodes). Topics have comment nodes which are used to show the topic messages. Subscription state is retrieve when a thread is shown, and can be changed easily with as ingle button click. Quill editor is used, and is extended with Quill-Mention to easily send a mention to an XMPP entity. Attachments and tags are handled with buttons added to Quill editor. Search in a thread is using Pubsub MAM, is the same way as for blogs. rel 463
author Goffi <goffi@goffi.org>
date Sat, 06 Sep 2025 16:30:46 +0200
parents 301fe2f1a34a
children
line wrap: on
line diff
--- a/libervia/web/server/restricted_bridge.py	Sat Sep 06 12:12:42 2025 +0200
+++ b/libervia/web/server/restricted_bridge.py	Sat Sep 06 16:30:46 2025 +0200
@@ -220,6 +220,14 @@
             "message_send", to_jid_s, message, subject, mess_type, extra_s, profile
         )
 
+    async def ps_invite(
+        self, invitee_jid_s, service_s, node, item_id, name, extra_s, profile
+    ):
+        self.no_service_profile(profile)
+        return await self.host.bridge_call(
+            "ps_invite", invitee_jid_s, service_s, node, item_id, name, extra_s, profile
+        )
+
     async def ps_node_delete(self, service_s, node, profile):
         self.no_service_profile(profile)
         return await self.host.bridge_call(
@@ -235,11 +243,49 @@
         return await self.host.bridge_call(
             "ps_item_retract", service_s, node, item_id, notify, profile)
 
+    async def ps_attachments_get(
+        self, service_s: str, node: str, item: str, senders_s: list[str], extra_s: str,
+        profile: str
+    ) -> None:
+        return await self.host.bridge_call(
+            "ps_attachments_get", service_s, node, item, senders_s, extra_s, profile
+        )
+
+    async def ps_attachments_set(
+        self, attachments_s: str, profile: str
+    ) -> None:
+        self.no_service_profile(profile)
+        return await self.host.bridge_call(
+            "ps_attachments_set", attachments_s, profile
+        )
+
+    async def ps_subscribe(
+        self, service_s, node, options_s, profile: str
+    ) -> str:
+        self.no_service_profile(profile)
+        return await self.host.bridge_call(
+            "ps_subscribe", service_s, node, options_s, profile
+        )
+
+    async def ps_unsubscribe(
+        self, service_s, node, profile: str
+    ) -> str:
+        self.no_service_profile(profile)
+        return await self.host.bridge_call(
+            "ps_unsubscribe", service_s, node, profile
+        )
+
     async def mb_preview(self, data, profile):
         return await self.host.bridge_call(
             "mb_preview", data, profile
         )
 
+    async def mb_send(self, data_s, profile):
+        self.no_service_profile(profile)
+        return await self.host.bridge_call(
+            "mb_send", data_s, profile
+        )
+
     async def list_set(self, service_s, node, values, schema, item_id, extra, profile):
         self.no_service_profile(profile)
         return await self.host.bridge_call(
@@ -315,14 +361,6 @@
             "muc_join", room_jid_s, nick, options, profile
         )
 
-    async def ps_invite(
-        self, invitee_jid_s, service_s, node, item_id, name, extra_s, profile
-    ):
-        self.no_service_profile(profile)
-        return await self.host.bridge_call(
-            "ps_invite", invitee_jid_s, service_s, node, item_id, name, extra_s, profile
-        )
-
     async def fis_invite(
         self, invitee_jid_s, service_s, repos_type, namespace, path, name, extra_s,
         profile
@@ -374,22 +412,6 @@
             "jid_search", search_term, options_s, profile
         )
 
-    async def ps_attachments_get(
-        self, service_s: str, node: str, item: str, senders_s: list[str], extra_s: str,
-        profile: str
-    ) -> None:
-        return await self.host.bridge_call(
-            "ps_attachments_get", service_s, node, item, senders_s, extra_s, profile
-        )
-
-    async def ps_attachments_set(
-        self, attachments_s: str, profile: str
-    ) -> None:
-        self.no_service_profile(profile)
-        return await self.host.bridge_call(
-            "ps_attachments_set", attachments_s, profile
-        )
-
     async def remote_control_start(
         self, peer_jid_s: str, extra_s: str, profile: str
     ) -> None: