From 57f879f2d3167c9248082ba3f65e6ab57a123fef Mon Sep 17 00:00:00 2001 From: Goffi Date: Tue, 6 May 2025 00:18:30 +0200 Subject: [PATCH] core (xmpp): parse element: were generated from message data, but not parsed for incoming messages. rel 457 --- libervia/backend/core/xmpp.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libervia/backend/core/xmpp.py b/libervia/backend/core/xmpp.py index ecce68f9..bfd5d379 100644 --- a/libervia/backend/core/xmpp.py +++ b/libervia/backend/core/xmpp.py @@ -1333,7 +1333,7 @@ class SatMessageProtocol(xmppim.MessageProtocol): ) ) ) - return {} + return MessageData() if message_elt.uri == None: # xmlns may be None when wokkel element parsing strip out root namespace @@ -1355,7 +1355,7 @@ class SatMessageProtocol(xmppim.MessageProtocol): message = {} subject = {} extra = {} - data: MessageData = { + data = MessageData({ "from": jid.JID(message_elt["from"]), "to": jid.JID(message_elt["to"]), "uid": message_elt.getAttribute( @@ -1365,10 +1365,10 @@ class SatMessageProtocol(xmppim.MessageProtocol): "subject": subject, "type": message_elt.getAttribute("type", "normal"), "extra": extra, - } + }) try: - message_id = data["extra"]["message_id"] = message_elt["id"] + message_id = extra["message_id"] = message_elt["id"] except KeyError: pass else: @@ -1382,6 +1382,14 @@ class SatMessageProtocol(xmppim.MessageProtocol): for e in message_elt.elements(C.NS_CLIENT, "subject"): subject[e.getAttribute((C.NS_XML, "lang"), "")] = str(e) + # thread + for e in message_elt.elements(C.NS_CLIENT, "thread"): + extra["thread"] = str(e) + if e.hasAttribute("parent"): + extra["thread_parent"] = e["parent"] + # Per RFC, we can't have more than one . + break + # delay and timestamp try: received_timestamp = message_elt._received_timestamp