comparison sat/plugins/plugin_misc_forums.py @ 3573:813595f88612

merge changes from main branch
author Goffi <goffi@goffi.org>
date Thu, 17 Jun 2021 13:05:58 +0200
parents 3fd60beb9b92
children edc79cefe968
comparison
equal deleted inserted replaced
3541:888109774673 3573:813595f88612
19 19
20 from sat.core.i18n import _ 20 from sat.core.i18n import _
21 from sat.core.constants import Const as C 21 from sat.core.constants import Const as C
22 from sat.core import exceptions 22 from sat.core import exceptions
23 from sat.core.log import getLogger 23 from sat.core.log import getLogger
24 from sat.tools.common import uri 24 from sat.tools.common import uri, data_format
25 from twisted.words.protocols.jabber import jid 25 from twisted.words.protocols.jabber import jid
26 from twisted.words.xish import domish 26 from twisted.words.xish import domish
27 from twisted.internet import defer 27 from twisted.internet import defer
28 import shortuuid 28 import shortuuid
29 import json 29 import json
71 host.bridge.addMethod("forumsSet", ".plugin", 71 host.bridge.addMethod("forumsSet", ".plugin",
72 in_sign='sssss', out_sign='', 72 in_sign='sssss', out_sign='',
73 method=self._set, 73 method=self._set,
74 async_=True) 74 async_=True)
75 host.bridge.addMethod("forumTopicsGet", ".plugin", 75 host.bridge.addMethod("forumTopicsGet", ".plugin",
76 in_sign='ssa{ss}s', out_sign='(aa{ss}a{ss})', 76 in_sign='ssa{ss}s', out_sign='(aa{ss}s)',
77 method=self._getTopics, 77 method=self._getTopics,
78 async_=True) 78 async_=True)
79 host.bridge.addMethod("forumTopicCreate", ".plugin", 79 host.bridge.addMethod("forumTopicCreate", ".plugin",
80 in_sign='ssa{ss}s', out_sign='', 80 in_sign='ssa{ss}s', out_sign='',
81 method=self._createTopic, 81 method=self._createTopic,
247 247
248 def _getTopics(self, service, node, extra=None, profile_key=C.PROF_KEY_NONE): 248 def _getTopics(self, service, node, extra=None, profile_key=C.PROF_KEY_NONE):
249 client = self.host.getClient(profile_key) 249 client = self.host.getClient(profile_key)
250 extra = self._p.parseExtra(extra) 250 extra = self._p.parseExtra(extra)
251 d = self.getTopics(client, jid.JID(service), node, rsm_request=extra.rsm_request, extra=extra.extra) 251 d = self.getTopics(client, jid.JID(service), node, rsm_request=extra.rsm_request, extra=extra.extra)
252 d.addCallback(lambda topics_metadata: (topics_metadata[0], {k: str(v) for k,v in topics_metadata[1].items()})) 252 d.addCallback(
253 lambda topics_data: (topics_data[0], data_format.serialise(topics_data[1]))
254 )
253 return d 255 return d
254 256
255 @defer.inlineCallbacks 257 @defer.inlineCallbacks
256 def getTopics(self, client, service, node, rsm_request=None, extra=None): 258 def getTopics(self, client, service, node, rsm_request=None, extra=None):
257 """Retrieve topics data 259 """Retrieve topics data