소스 검색

Add missing config key copying and catch some bridging errors

Tulir Asokan 4 년 전
부모
커밋
3e6b719f19
3개의 변경된 파일10개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      mauigpapi/types/thread_item.py
  2. 1 0
      mautrix_instagram/config.py
  3. 8 0
      mautrix_instagram/portal.py

+ 1 - 1
mauigpapi/types/thread_item.py

@@ -125,7 +125,7 @@ class MediaType(SerializableEnum):
 
 @dataclass(kw_only=True)
 class ExpiredMediaItem(SerializableAttrs['ExpiredMediaItem']):
-    media_type: MediaType
+    media_type: Optional[MediaType] = None
 
 
 @dataclass(kw_only=True)

+ 1 - 0
mautrix_instagram/config.py

@@ -68,6 +68,7 @@ class Config(BaseBridgeConfig):
         copy("bridge.federate_rooms")
         copy("bridge.backfill.invite_own_puppet")
         copy("bridge.backfill.initial_limit")
+        copy("bridge.backfill.missed_limit")
         copy("bridge.backfill.disable_notifications")
         copy("bridge.encryption.allow")
         copy("bridge.encryption.default")

+ 8 - 0
mautrix_instagram/portal.py

@@ -422,6 +422,14 @@ class Portal(DBPortal, BasePortal):
 
     async def handle_instagram_item(self, source: 'u.User', sender: 'p.Puppet', item: ThreadItem,
                                     is_backfill: bool = False) -> None:
+        try:
+            await self._handle_instagram_item(source, sender, item, is_backfill)
+        except Exception:
+            self.log.exception("Fatal error handling Instagram item")
+            self.log.trace("Item content: %s", item.serialize())
+
+    async def _handle_instagram_item(self, source: 'u.User', sender: 'p.Puppet', item: ThreadItem,
+                                    is_backfill: bool = False) -> None:
         if item.client_context in self._reqid_dedup:
             self.log.debug(f"Ignoring message {item.item_id} by {item.user_id}"
                            " as it was sent by us (client_context in dedup queue)")