Mercurial > libervia-backend
diff sat/plugins/plugin_xep_0359.py @ 3797:cc653b2685f0
core (memory/sqla), plugin XEP-0359: always add `origin-id`, and store:
`origin-id` is now always added to messages, and it is stored to database in the new
column instead of `extra` when present.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 17 Jun 2022 14:15:23 +0200 |
parents | be6d91572633 |
children | 8289ac1b34f4 |
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0359.py Fri Jun 17 14:15:23 2022 +0200 +++ b/sat/plugins/plugin_xep_0359.py Fri Jun 17 14:15:23 2022 +0200 @@ -50,14 +50,26 @@ self.host = host host.registerNamespace("stanza_id", NS_SID) host.trigger.add("message_parse", self._message_parseTrigger) + host.trigger.add("sendMessageData", self._sendMessageDataTrigger) def _message_parseTrigger(self, client, message_elt, mess_data): """Check if message has a stanza-id""" stanza_id = self.getStanzaId(message_elt, client.jid.userhostJID()) if stanza_id is not None: mess_data['extra']['stanza_id'] = stanza_id + origin_id = self.getOriginId(message_elt) + if origin_id is not None: + mess_data['extra']['origin_id'] = origin_id return True + def _sendMessageDataTrigger(self, client, mess_data): + origin_id = mess_data["extra"].get("origin_id") + if not origin_id: + origin_id = str(uuid.uuid4()) + mess_data["extra"]["origin_id"] = origin_id + message_elt = mess_data["xml"] + self.addOriginId(message_elt, origin_id) + def getStanzaId(self, element, by): """Return stanza-id if found in element