Philipp Hörist pushed to branch master at gajim / gajim


Commits:
c2dac79e by Philipp Hörist at 2025-09-06T21:54:48+02:00
imprv: Replies: Add thread id when replying

- - - - -


3 changed files:

- gajim/common/modules/message.py
- gajim/common/structs.py
- gajim/gtk/referenced_message.py


Changes:

=====================================
gajim/common/modules/message.py
=====================================
@@ -448,6 +448,10 @@ def store_message(self, message: OutgoingMessage) -> None:
             self._account, remote_jid, message.timestamp, message.sec_label)
         reply = get_reply(message.reply_data)
 
+        thread_id = None
+        if message.reply_data is not None:
+            thread_id = message.reply_data.thread_id
+
         oob_data: list[mod.OOB] = []
         if message.oob_url is not None:
             oob_data.append(mod.OOB(url=message.oob_url, description=None))
@@ -464,6 +468,7 @@ def store_message(self, message: OutgoingMessage) -> None:
             id=message.message_id,
             stanza_id=None,
             user_delay_ts=None,
+            thread_id_=thread_id,
             correction_id=message.correct_id,
             encryption_=encryption_data,
             oob=oob_data,
@@ -504,6 +509,8 @@ def build_message_stanza(message: OutgoingMessage, own_jid: 
JID) -> nbxmpp.Messa
     stanza.setID(message.message_id)
     stanza.setOriginID(message.message_id)
 
+    thread_id = None
+
     # Mark Message as MUC PM
     if message.is_pm:
         stanza.setTag('x', namespace=Namespace.MUC_USER)
@@ -520,6 +527,7 @@ def build_message_stanza(message: OutgoingMessage, own_jid: 
JID) -> nbxmpp.Messa
 
     # XEP-0461
     if message.reply_data is not None:
+        thread_id = message.reply_data.thread_id
         stanza.setReply(str(message.reply_data.to),
                         message.reply_data.id,
                         message.reply_data.fallback_start,
@@ -561,4 +569,9 @@ def build_message_stanza(message: OutgoingMessage, own_jid: 
JID) -> nbxmpp.Messa
     if message.mds_id is not None:
         stanza.setMdsAssist(message.mds_id, own_jid.new_as_bare())
 
+    # Thread
+    # Currently only supported for replies
+    if thread_id is not None:
+        stanza.setThread(thread_id)
+
     return stanza


=====================================
gajim/common/structs.py
=====================================
@@ -315,6 +315,7 @@ class ReplyData:
     pk: int
     to: JID
     id: str
+    thread_id: str | None
     fallback_start: int
     fallback_end: int
     fallback_text: str


=====================================
gajim/gtk/referenced_message.py
=====================================
@@ -183,11 +183,16 @@ def get_message_reply(self) -> ReplyData | None:
         if reply_to_id is None:
             return None
 
+        thread_id = None
+        if self._original_message.thread is not None:
+            thread_id = self._original_message.thread.id
+
         quoted_text = quote_text(self._message.text)
         return ReplyData(
             pk=self._original_message.pk,
             to=jid,
             id=reply_to_id,
+            thread_id=thread_id,
             fallback_start=0,
             fallback_end=len(quoted_text),
             fallback_text=quoted_text,



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/c2dac79e1dac26efcdc734c94aaa7b567a30df90

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/c2dac79e1dac26efcdc734c94aaa7b567a30df90
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to