diff libervia/cli/cmd_blog.py @ 4383:7c1d77efc752

plugin XEP-0277: Make MbData a Pydantic model: - MbData is now a Pydantic based model. - Bridge method has been updated to use `service` and `node` from MbData instead of using separate fields. - Added `In-Reply-To` to MbData. - Adapted code using XEP-0277 to work with the changes. rel 462
author Goffi <goffi@goffi.org>
date Sun, 03 Aug 2025 23:35:21 +0200
parents 0d7bb4df2343
children
line wrap: on
line diff
--- a/libervia/cli/cmd_blog.py	Fri Jul 04 12:33:42 2025 +0200
+++ b/libervia/cli/cmd_blog.py	Sun Aug 03 23:35:21 2025 +0200
@@ -313,6 +313,7 @@
 
         if metadata already exist, it will be overwritten
         """
+        extra = mb_data.setdefault("extra", {})
         if self.args.comments is not None:
             mb_data["allow_comments"] = self.args.comments
         if self.args.tag:
@@ -324,13 +325,13 @@
         if self.args.no_id_suffix:
             mb_data["user_friendly_id_suffix"] = False
         if self.args.alt_links:
-            mb_data.setdefault("extra", {})["alt_links"] = self.args.alt_links
+            extra["alt_links"] = self.args.alt_links
         if self.args.encrypt:
-            mb_data["encrypted"] = True
+            extra["encrypted"] = True
         if self.args.sign:
-            mb_data["signed"] = True
+            extra["signed"] = True
         if self.args.encrypt_for:
-            mb_data["encrypted_for"] = {"targets": self.args.encrypt_for}
+            extra["encrypted_for"] = {"targets": self.args.encrypt_for}
         self.handle_attachments(mb_data)
 
 
@@ -352,7 +353,11 @@
     async def start(self):
         self.current_syntax = await self.get_current_syntax()
         self.pubsub_item = self.args.item
-        mb_data = {}
+        mb_data = {
+            "service": self.args.service or None,
+        }
+        if self.args.node:
+            mb_data["node"] = self.args.node
         self.set_mb_data_from_args(mb_data)
         if self.pubsub_item:
             mb_data["id"] = self.pubsub_item
@@ -361,8 +366,6 @@
 
         try:
             item_id = await self.host.bridge.mb_send(
-                self.args.service,
-                self.args.node,
                 data_format.serialise(mb_data),
                 self.profile,
             )
@@ -708,6 +711,9 @@
         await asyncio.gather(*coroutines)
 
     async def publish(self, content, mb_data):
+        mb_data["service"] = self.pubsub_service or None
+        if self.pubsub_node:
+            mb_data["node"] = self.pubsub_node
         await self.set_mb_data_content(content, mb_data)
 
         if self.pubsub_item:
@@ -715,9 +721,7 @@
 
         mb_data = data_format.serialise(mb_data)
 
-        await self.host.bridge.mb_send(
-            self.pubsub_service, self.pubsub_node, mb_data, self.profile
-        )
+        await self.host.bridge.mb_send(mb_data, self.profile)
         self.disp("Blog item published")
 
     def get_tmp_suff(self):