Browse Source

Add remote_id from state if User.igpk is not set

Tulir Asokan 3 years ago
parent
commit
f07e5dc0ad
1 changed files with 9 additions and 2 deletions
  1. 9 2
      mautrix_instagram/user.py

+ 9 - 2
mautrix_instagram/user.py

@@ -24,7 +24,7 @@ from mauigpapi.mqtt import Connect, Disconnect, GraphQLSubscription, SkywalkerSu
 from mauigpapi.types import (CurrentUser, MessageSyncEvent, Operation, RealtimeDirectEvent,
 from mauigpapi.types import (CurrentUser, MessageSyncEvent, Operation, RealtimeDirectEvent,
                              ActivityIndicatorData, TypingStatus, ThreadSyncEvent, Thread)
                              ActivityIndicatorData, TypingStatus, ThreadSyncEvent, Thread)
 from mauigpapi.errors import (IGNotLoggedInError, MQTTNotLoggedIn, MQTTNotConnected,
 from mauigpapi.errors import (IGNotLoggedInError, MQTTNotLoggedIn, MQTTNotConnected,
-                              IrisSubscribeError)
+                              IrisSubscribeError, IGUserIDNotFoundError)
 from mautrix.bridge import BaseUser, BridgeState, async_getter_lock
 from mautrix.bridge import BaseUser, BridgeState, async_getter_lock
 from mautrix.types import UserID, RoomID, EventID, TextMessageEventContent, MessageType
 from mautrix.types import UserID, RoomID, EventID, TextMessageEventContent, MessageType
 from mautrix.appservice import AppService
 from mautrix.appservice import AppService
@@ -182,7 +182,14 @@ class User(DBUser, BaseUser):
 
 
     async def fill_bridge_state(self, state: BridgeState) -> None:
     async def fill_bridge_state(self, state: BridgeState) -> None:
         await super().fill_bridge_state(state)
         await super().fill_bridge_state(state)
-        state.remote_id = str(self.igpk)
+        if not state.remote_id:
+            if self.igpk:
+                state.remote_id = str(self.igpk)
+            else:
+                try:
+                    state.remote_id = self.state.user_id
+                except IGUserIDNotFoundError:
+                    state.remote_id = None
         state.remote_name = f"@{self.username}"
         state.remote_name = f"@{self.username}"
 
 
     async def send_bridge_notice(self, text: str, edit: Optional[EventID] = None,
     async def send_bridge_notice(self, text: str, edit: Optional[EventID] = None,