From 883c4dcf198d15d827fb5172791d321d4ef3532c Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 21 Nov 2019 23:12:11 +0200 Subject: [PATCH] Include server name when joining upgraded room --- mautrix_telegram/matrix.py | 6 +++--- mautrix_telegram/portal/matrix.py | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py index b7d658d2..ee78eb79 100644 --- a/mautrix_telegram/matrix.py +++ b/mautrix_telegram/matrix.py @@ -273,10 +273,10 @@ class MatrixHandler(BaseMatrixHandler): await portal.handle_matrix_pin(sender, None) @staticmethod - async def handle_room_upgrade(room_id: RoomID, new_room_id: RoomID) -> None: + async def handle_room_upgrade(room_id: RoomID, sender: UserID, new_room_id: RoomID) -> None: portal = po.Portal.get_by_mxid(room_id) if portal: - await portal.handle_matrix_upgrade(new_room_id) + await portal.handle_matrix_upgrade(sender, new_room_id) async def handle_member_info_change(self, room_id: RoomID, user_id: UserID, profile: MemberStateEventContent, @@ -373,7 +373,7 @@ class MatrixHandler(BaseMatrixHandler): old_events = set() await self.handle_room_pin(evt.room_id, evt.sender, new_events, old_events) elif evt.type == EventType.ROOM_TOMBSTONE: - await self.handle_room_upgrade(evt.room_id, evt.content.replacement_room) + await self.handle_room_upgrade(evt.room_id, evt.sender, evt.content.replacement_room) # async def handle_event(self, evt: MatrixEvent) -> None: # if self.filter_matrix_event(evt): diff --git a/mautrix_telegram/portal/matrix.py b/mautrix_telegram/portal/matrix.py index 5f6b7dca..ada7c9ac 100644 --- a/mautrix_telegram/portal/matrix.py +++ b/mautrix_telegram/portal/matrix.py @@ -494,10 +494,11 @@ class PortalMatrix(BasePortal, MautrixBasePortal, ABC): self.save() break - async def handle_matrix_upgrade(self, new_room: RoomID) -> None: + async def handle_matrix_upgrade(self, sender: UserID, new_room: RoomID) -> None: + _, server = self.main_intent.parse_user_id(sender) old_room = self.mxid self.migrate_and_save_matrix(new_room) - await self.main_intent.join_room(new_room) + await self.main_intent.join_room(new_room, servers=[server]) entity: Optional[TypeInputPeer] = None user: Optional[AbstractUser] = None if self.bot and self.has_bot: @@ -519,7 +520,7 @@ class PortalMatrix(BasePortal, MautrixBasePortal, ABC): "no Telegram user found.") return await self.update_matrix_room(user, entity, direct=self.peer_type == "user") - self.log.info(f"Upgraded room from {old_room} to {self.mxid}") + self.log.info(f"{sender} upgraded room from {old_room} to {self.mxid}") def migrate_and_save_matrix(self, new_id: RoomID) -> None: try: