Mercurial > libervia-backend
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):