# HG changeset patch # User Goffi # Date 1746483510 -7200 # Node ID 4da560a8aed323af2713da8f255f62401ec7f380 # Parent d34b17bce6123c8f925641b761985c267cf8417a core (xmpp): parse element: were generated from message data, but not parsed for incoming messages. rel 457 diff -r d34b17bce612 -r 4da560a8aed3 libervia/backend/core/xmpp.py --- a/libervia/backend/core/xmpp.py Tue May 06 00:16:15 2025 +0200 +++ b/libervia/backend/core/xmpp.py Tue May 06 00:18:30 2025 +0200 @@ -1333,7 +1333,7 @@ ) ) ) - return {} + return MessageData() if message_elt.uri == None: # xmlns may be None when wokkel element parsing strip out root namespace @@ -1355,7 +1355,7 @@ 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 @@ "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 @@ 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