Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gajim/common/modules/receipts.py')
-rw-r--r--gajim/common/modules/receipts.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/gajim/common/modules/receipts.py b/gajim/common/modules/receipts.py
index b783b059a..7f1114cfc 100644
--- a/gajim/common/modules/receipts.py
+++ b/gajim/common/modules/receipts.py
@@ -28,6 +28,7 @@ from gajim.common import app
from gajim.common import types
from gajim.common.events import ReceiptReceived
from gajim.common.modules.base import BaseModule
+from gajim.common.storage.archive.structs import DbUpsertMarkerRowData
class Receipts(BaseModule):
@@ -46,6 +47,7 @@ class Receipts(BaseModule):
stanza: Message,
properties: MessageProperties
) -> None:
+
if not properties.is_receipt:
return
@@ -58,7 +60,6 @@ class Receipts(BaseModule):
if (properties.type.is_groupchat or
properties.is_self_message or
- properties.is_mam_message or
properties.is_carbon_message and properties.carbon.is_sent):
if properties.receipt.is_received:
@@ -66,7 +67,7 @@ class Receipts(BaseModule):
raise nbxmpp.NodeProcessed
return
- if properties.receipt.is_request:
+ if properties.receipt.is_request and not properties.is_mam_message:
if not app.settings.get_account_setting(self._account,
'answer_receipts'):
return
@@ -87,20 +88,23 @@ class Receipts(BaseModule):
properties.jid,
properties.receipt.id)
- jid = properties.jid
- if not properties.is_muc_pm:
- jid = jid.new_as_bare()
+ if properties.is_mam_message:
+ timestamp = properties.mam.timestamp
+ else:
+ timestamp = properties.timestamp
- app.storage.archive.set_marker(
- app.get_jid_from_account(self._account),
- jid,
- properties.receipt.id,
- 'received')
+ marker_data = DbUpsertMarkerRowData(
+ account=self._account,
+ remote_jid=properties.remote_jid,
+ fk_occupant_ek=None,
+ marker_id=properties.receipt.id,
+ received_ts=timestamp)
+ app.storage.archive.upsert_row(marker_data)
app.ged.raise_event(
ReceiptReceived(
account=self._account,
- jid=jid,
+ jid=properties.remote_jid,
receipt_id=properties.receipt.id))
raise nbxmpp.NodeProcessed