Mercurial > libervia-backend
comparison sat/plugins/plugin_xep_0313.py @ 3447:c3f07c0cb2de
plugin XEP-0431: Fulltext Search for MAM implementation
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 10 Dec 2020 10:32:54 +0100 |
parents | 000b6722bd35 |
children | be6d91572633 |
comparison
equal
deleted
inserted
replaced
3446:d2298ed6de7f | 3447:c3f07c0cb2de |
---|---|
41 | 41 |
42 PLUGIN_INFO = { | 42 PLUGIN_INFO = { |
43 C.PI_NAME: "Message Archive Management", | 43 C.PI_NAME: "Message Archive Management", |
44 C.PI_IMPORT_NAME: "XEP-0313", | 44 C.PI_IMPORT_NAME: "XEP-0313", |
45 C.PI_TYPE: "XEP", | 45 C.PI_TYPE: "XEP", |
46 C.PI_PROTOCOLS: ["XEP-0313"], | 46 # XEP-0431 only defines a namespace, so we register it here |
47 C.PI_PROTOCOLS: ["XEP-0313", "XEP-0431"], | |
47 C.PI_DEPENDENCIES: ["XEP-0059", "XEP-0359"], | 48 C.PI_DEPENDENCIES: ["XEP-0059", "XEP-0359"], |
48 C.PI_MAIN: "XEP_0313", | 49 C.PI_MAIN: "XEP_0313", |
49 C.PI_HANDLER: "yes", | 50 C.PI_HANDLER: "yes", |
50 C.PI_DESCRIPTION: _("""Implementation of Message Archive Management"""), | 51 C.PI_DESCRIPTION: _("""Implementation of Message Archive Management"""), |
51 } | 52 } |
53 MAM_PREFIX = "mam_" | 54 MAM_PREFIX = "mam_" |
54 FILTER_PREFIX = MAM_PREFIX + "filter_" | 55 FILTER_PREFIX = MAM_PREFIX + "filter_" |
55 KEY_LAST_STANZA_ID = "last_stanza_id" | 56 KEY_LAST_STANZA_ID = "last_stanza_id" |
56 MESSAGE_RESULT = "/message/result[@xmlns='{mam_ns}' and @queryid='{query_id}']" | 57 MESSAGE_RESULT = "/message/result[@xmlns='{mam_ns}' and @queryid='{query_id}']" |
57 MESSAGE_STANZA_ID = '/message/stanza-id[@xmlns="{ns_stanza_id}"]' | 58 MESSAGE_STANZA_ID = '/message/stanza-id[@xmlns="{ns_stanza_id}"]' |
59 NS_FTS = "urn:xmpp:fulltext:0" | |
58 | 60 |
59 | 61 |
60 class XEP_0313(object): | 62 class XEP_0313(object): |
61 def __init__(self, host): | 63 def __init__(self, host): |
62 log.info(_("Message Archive Management plugin initialization")) | 64 log.info(_("Message Archive Management plugin initialization")) |
63 self.host = host | 65 self.host = host |
64 self.host.registerNamespace("mam", mam.NS_MAM) | 66 self.host.registerNamespace("mam", mam.NS_MAM) |
67 host.registerNamespace("fulltextmam", NS_FTS) | |
65 self._rsm = host.plugins["XEP-0059"] | 68 self._rsm = host.plugins["XEP-0059"] |
66 self._sid = host.plugins["XEP-0359"] | 69 self._sid = host.plugins["XEP-0359"] |
67 # Deferred used to store last stanza id in order of reception | 70 # Deferred used to store last stanza id in order of reception |
68 self._last_stanza_id_d = defer.Deferred() | 71 self._last_stanza_id_d = defer.Deferred() |
69 self._last_stanza_id_d.callback(None) | 72 self._last_stanza_id_d.callback(None) |