aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/service/reactions.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-09-17 17:47:36 +0200
committerfiaxh <git@lightrise.org>2025-09-17 17:47:36 +0200
commitd625058d76efc9e344dd5e1239a4b040a7d2519a (patch)
tree4b5a6dc6ad05cb96f58014d1f8740f632efa4bdc /libdino/src/service/reactions.vala
parentfa678bd2cf60ebdcda652794bfb5e06b7bd7917f (diff)
Message correction: Use occupant ids, handle correction-before-message
Diffstat (limited to 'libdino/src/service/reactions.vala')
-rw-r--r--libdino/src/service/reactions.vala20
1 files changed, 2 insertions, 18 deletions
diff --git a/libdino/src/service/reactions.vala b/libdino/src/service/reactions.vala
index 91651db7..f6050d28 100644
--- a/libdino/src/service/reactions.vala
+++ b/libdino/src/service/reactions.vala
@@ -251,7 +251,7 @@ public class Dino.Reactions : StreamInteractionModule, Object {
Message reaction_message = yield stream_interactor.get_module(MessageProcessor.IDENTITY).parse_message_stanza(account, stanza);
Conversation conversation = stream_interactor.get_module(ConversationManager.IDENTITY).get_conversation_for_message(reaction_message);
- int content_item_id = stream_interactor.get_module(ContentItemStore.IDENTITY).get_content_item_id_for_message_id(conversation, message_id);
+ int content_item_id = stream_interactor.get_module(ContentItemStore.IDENTITY).get_content_item_id_for_referencing_id(conversation, message_id);
var reaction_info = new ReactionInfo() { conversation=conversation, from_jid=from_jid, reactions=reactions, stanza=stanza, received_time=new DateTime.now() };
if (content_item_id != -1) {
@@ -425,23 +425,7 @@ public class Dino.Reactions : StreamInteractionModule, Object {
}
if (occupant_id != null) {
- RowOption row = db.occupantid.select()
- .with(db.occupantid.account_id, "=", account.id)
- .with(db.occupantid.jid_id, "=", jid_id)
- .with(db.occupantid.occupant_id, "=", occupant_id)
- .single().row();
-
- int occupant_db_id = -1;
- if (row.is_present()) {
- occupant_db_id = row[db.occupantid.id];
- } else {
- occupant_db_id = (int)db.occupantid.upsert()
- .value(db.occupantid.account_id, account.id, true)
- .value(db.occupantid.jid_id, jid_id, true)
- .value(db.occupantid.occupant_id, occupant_id, true)
- .value(db.occupantid.last_nick, jid.resourcepart, false)
- .perform();
- }
+ int occupant_db_id = stream_interactor.get_module(OccupantIdStore.IDENTITY).cache_occupant_id(account, occupant_id, jid);
builder.value(db.reaction.occupant_id, occupant_db_id, true);
}