Include server name when joining upgraded room
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user