Mercurial > libervia-backend
diff sat/plugins/plugin_misc_forums.py @ 3515:2dce411c2647
plugin misc forums: use rich content in createTopic
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 01 May 2021 18:23:42 +0200 |
parents | be6d91572633 |
children | 3fd60beb9b92 |
line wrap: on
line diff
--- a/sat/plugins/plugin_misc_forums.py Sat May 01 18:22:53 2021 +0200 +++ b/sat/plugins/plugin_misc_forums.py Sat May 01 18:23:42 2021 +0200 @@ -272,20 +272,21 @@ def _createTopic(self, service, node, mb_data, profile_key): client = self.host.getClient(profile_key) - return self.createTopic(client, jid.JID(service), node, mb_data) + return defer.ensureDeferred( + self.createTopic(client, jid.JID(service), node, mb_data) + ) - @defer.inlineCallbacks - def createTopic(self, client, service, node, mb_data): + async def createTopic(self, client, service, node, mb_data): try: title = mb_data['title'] - if not 'content' in mb_data: - raise KeyError('content') + content = mb_data.pop('content') except KeyError as e: raise exceptions.DataError("missing mandatory data: {key}".format(key=e.args[0])) - + else: + mb_data["content_rich"] = content topic_node = FORUM_TOPIC_NODE_TPL.format(node=node, uuid=shortuuid.uuid()) - yield self._p.createNode(client, service, topic_node, self._node_options) - self._m.send(client, mb_data, service, topic_node) + await self._p.createNode(client, service, topic_node, self._node_options) + await self._m.send(client, mb_data, service, topic_node) topic_uri = uri.buildXMPPUri('pubsub', subtype='microblog', path=service.full(), @@ -294,4 +295,4 @@ topic_elt['uri'] = topic_uri topic_elt['author'] = client.jid.userhost() topic_elt.addElement('title', content = title) - yield self._p.sendItem(client, service, node, topic_elt) + await self._p.sendItem(client, service, node, topic_elt)