Philipp Hörist pushed to branch reactions at gajim / gajim
Commits:
506fc021 by Philipp Hörist at 2024-05-12T21:36:18+02:00
new: Store sent reactions in the database
- - - - -
1 changed file:
- gajim/common/modules/message.py
Changes:
=====================================
gajim/common/modules/message.py
=====================================
@@ -22,7 +22,9 @@
from gajim.common.events import MessageReceived
from gajim.common.events import MessageSent
from gajim.common.events import RawMessageReceived
+from gajim.common.events import ReactionReceived
from gajim.common.modules.base import BaseModule
+from gajim.common.modules.message_util import convert_message_type
from gajim.common.modules.message_util import get_chat_type_and_direction
from gajim.common.modules.message_util import get_eme_message
from gajim.common.modules.message_util import get_message_timestamp
@@ -342,6 +344,20 @@ def build_message_stanza(self, message: OutgoingMessage)
-> nbxmpp.Message:
typ=convert_message_type(message.type)
)
+ # XEP-0359
+ stanza.setID(message.message_id)
+ stanza.setOriginID(message.message_id)
+
+ # Mark Message as MUC PM
+ if message.is_pm:
+ stanza.setTag('x', namespace=Namespace.MUC_USER)
+
+ # XEP-0444
+ if message.reaction_data is not None:
+ stanza.setReactions(*message.reaction_data)
+ stanza.setTag('store', namespace=Namespace.MSG_HINTS)
+ return stanza
+
if message.correct_id:
stanza.setTag('replace', attrs={'id': message.correct_id},
namespace=Namespace.CORRECT)
@@ -353,14 +369,6 @@ def build_message_stanza(self, message: OutgoingMessage)
-> nbxmpp.Message:
message.reply_data.fallback_start,
message.reply_data.fallback_end)
- # XEP-0444
- if message.reaction_data is not None:
- stanza.setReactions(*message.reaction_data)
-
- # XEP-0359
- stanza.setID(message.message_id)
- stanza.setOriginID(message.message_id)
-
if message.sec_label:
stanza.addChild(node=message.sec_label.to_node())
@@ -374,10 +382,6 @@ def build_message_stanza(self, message: OutgoingMessage)
-> nbxmpp.Message:
if message.has_text() and not message.is_groupchat:
stanza.setReceiptRequest()
- # Mark Message as MUC PM
- if message.is_pm:
- stanza.setTag('x', namespace=Namespace.MUC_USER)
-
# XEP-0085
if message.chatstate is not None:
stanza.setTag(message.chatstate, namespace=Namespace.CHATSTATES)
@@ -432,6 +436,29 @@ def store_message(self, message: OutgoingMessage) -> None:
if message.type == MessageType.GROUPCHAT:
state = MessageState.PENDING
+ if message.reaction_data is not None:
+ reactions_id, reactions = message.reaction_data
+ reaction = mod.Reaction(
+ account_=self._account,
+ remote_jid_=remote_jid,
+ occupant_=occupant,
+ id=reactions_id,
+ direction=direction,
+ emojis=';'.join(reactions),
+ timestamp=message.timestamp,
+ )
+
+ app.storage.archive.upsert_row2(reaction)
+
+ app.ged.raise_event(
+ ReactionReceived(
+ account=self._account,
+ jid=remote_jid,
+ reaction_id=reactions_id,
+ )
+ )
+ return
+
encryption_data = None
encryption = message.get_encryption()
if encryption is not None:
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/506fc021a49c09317366fcf7e928c3afe21ecfe6
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/506fc021a49c09317366fcf7e928c3afe21ecfe6
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]