Ver código fonte

Catch automatic double puppeting errors. Fixes #101

Tulir Asokan 4 anos atrás
pai
commit
49e8a9994a
2 arquivos alterados com 6 adições e 3 exclusões
  1. 5 2
      mautrix_signal/user.py
  2. 1 1
      requirements.txt

+ 5 - 2
mautrix_signal/user.py

@@ -18,7 +18,7 @@ from uuid import UUID
 import asyncio
 
 from mausignald.types import Account, Address, Profile, Group, GroupV2, ListenEvent, ListenAction
-from mautrix.bridge import BaseUser, BridgeState, async_getter_lock
+from mautrix.bridge import BaseUser, BridgeState, AutologinError, async_getter_lock
 from mautrix.types import UserID, RoomID
 from mautrix.appservice import AppService
 from mautrix.util.opt_prometheus import Gauge
@@ -152,7 +152,10 @@ class User(DBUser, BaseUser):
             self.by_uuid[self.uuid] = self
         if puppet.custom_mxid != self.mxid and puppet.can_auto_login(self.mxid):
             self.log.info(f"Automatically enabling custom puppet")
-            await puppet.switch_mxid(access_token="auto", mxid=self.mxid)
+            try:
+                await puppet.switch_mxid(access_token="auto", mxid=self.mxid)
+            except AutologinError as e:
+                self.log.warning(f"Failed to enable custom puppet: {e}")
 
     async def sync(self) -> None:
         await self.sync_puppet()

+ 1 - 1
requirements.txt

@@ -4,5 +4,5 @@ commonmark>=0.8,<0.10
 aiohttp>=3,<4
 yarl>=1,<2
 attrs>=19.1
-mautrix>=0.9.6,<0.10
+mautrix>=0.9.7,<0.10
 asyncpg>=0.20,<0.24