Search messages having a uuid stanza id by id + account

This commit is contained in:
fiaxh 2017-03-12 21:22:45 +01:00
parent c2643a45b0
commit 13cef27d46
2 changed files with 3 additions and 2 deletions

View file

@ -293,9 +293,10 @@ public class Database : Qlite.Database {
.count() > 0;
}
public bool contains_message_by_stanza_id(string stanza_id) {
public bool contains_message_by_stanza_id(string stanza_id, Account account) {
return message.select()
.with(message.stanza_id, "=", stanza_id)
.with(message.account_id, "=", account.id)
.count() > 0;
}

View file

@ -115,7 +115,7 @@ public class MessageManager : StreamInteractionModule, Object {
pre_message_received(new_message, message, conversation);
bool is_uuid = new_message.stanza_id != null && Regex.match_simple("""[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}""", new_message.stanza_id);
if ((is_uuid && !db.contains_message_by_stanza_id(new_message.stanza_id)) ||
if ((is_uuid && !db.contains_message_by_stanza_id(new_message.stanza_id, conversation.account)) ||
(!is_uuid && !db.contains_message(new_message, conversation.account))) {
db.add_message(new_message, conversation.account);
add_message(new_message, conversation);