From 7213f9bf5723675e9ffb36acb08b9523bad9ff18 Mon Sep 17 00:00:00 2001
From: Tulir Asokan <tulir@maunium.net>
Date: Mon, 11 May 2020 19:38:12 +0300
Subject: [PATCH] Fix Matrix->Facebook read receipts

---
 mautrix_facebook/matrix.py | 2 +-
 mautrix_facebook/portal.py | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/mautrix_facebook/matrix.py b/mautrix_facebook/matrix.py
index 686eb27..5e631d4 100644
--- a/mautrix_facebook/matrix.py
+++ b/mautrix_facebook/matrix.py
@@ -225,7 +225,7 @@ class MatrixHandler(BaseMatrixHandler):
         if not portal:
             return
 
-        timestamp = datetime.utcfromtimestamp(data.get("ts", int(time.time() * 1000)) / 1000)
+        timestamp = datetime.fromtimestamp(data.get("ts", int(time.time() * 1000)) / 1000)
         await user.client.mark_as_read([portal.thread_for(user)], at=timestamp)
 
     def filter_matrix_event(self, evt: Event) -> bool:
diff --git a/mautrix_facebook/portal.py b/mautrix_facebook/portal.py
index bd286d5..ddfadfa 100644
--- a/mautrix_facebook/portal.py
+++ b/mautrix_facebook/portal.py
@@ -569,6 +569,9 @@ class Portal(BasePortal):
                 event_ids = [await self._handle_facebook_text(intent, message)]
             else:
                 self.log.warning(f"Unhandled Messenger message: {message}")
+                return
+        if event_ids:
+            self._last_bridged_mxid = event_ids[-1]
         DBMessage.bulk_create(fbid=message.id, fb_receiver=self.fb_receiver, mx_room=self.mxid,
                               event_ids=[event_id for event_id in event_ids if event_id])
         await source.client.mark_as_delivered(message)
@@ -655,7 +658,6 @@ class Portal(BasePortal):
         else:
             self.log.warning(f"Unsupported attachment type: {attachment}")
             return None
-        self._last_bridged_mxid = event_id
         return event_id
 
     async def _convert_facebook_location(self, intent: IntentAPI,
-- 
GitLab