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.
This commit is contained in:
parent
53ca566a9d
commit
bb3e7ffa9b
1 changed files with 15 additions and 3 deletions
|
|
@ -50,14 +50,26 @@ class XEP_0359(object):
|
|||
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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue