From 86658715022a97062b4a814c4531fc3955f6cbc5 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Mon, 18 Jul 2022 13:01:41 +0300 Subject: [PATCH] Fix some issues with auto-creating groups --- mautrix_telegram/example-config.yaml | 4 ++-- mautrix_telegram/matrix.py | 10 ++++++---- mautrix_telegram/portal.py | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/mautrix_telegram/example-config.yaml b/mautrix_telegram/example-config.yaml index 49448cab..688e3fb0 100644 --- a/mautrix_telegram/example-config.yaml +++ b/mautrix_telegram/example-config.yaml @@ -312,8 +312,8 @@ bridge: kick_on_logout: true # Should the "* user joined Telegram" notice always be marked as read automatically? always_read_joined_telegram_notice: true - # auto-create group chat portals by inviting Matrix puppet of Telegram user to a room - # requires double-puppeting to be enabled + # Should the bridge auto-create a group chat on Telegram when a ghost is invited to a room? + # Requires the user to have sufficient power level and double puppeting enabled. create_group_on_invite: true # Settings for backfilling messages from Telegram. backfill: diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py index 682badd8..08a741f4 100644 --- a/mautrix_telegram/matrix.py +++ b/mautrix_telegram/matrix.py @@ -75,7 +75,7 @@ class MatrixHandler(BaseMatrixHandler): if ( not double_puppet or self.az.bot_mxid in members - or not not self.config["bridge.create_group_on_invite"] + or not self.config["bridge.create_group_on_invite"] ): if self.az.bot_mxid not in members: await puppet.default_mxid_intent.leave_room( @@ -85,7 +85,8 @@ class MatrixHandler(BaseMatrixHandler): else: await puppet.default_mxid_intent.send_notice( room_id, - "This ghost will remain inactive until a Telegram chat is created for this room.", + "This ghost will remain inactive " + "until a Telegram chat is created for this room.", ) return elif not await user_has_power_level( @@ -101,7 +102,7 @@ class MatrixHandler(BaseMatrixHandler): title, about, levels, encrypted = await get_initial_state(double_puppet.intent, room_id) if not title: await puppet.default_mxid_intent.leave_room( - room_id, reason="Please set a title before inviting Telegram puppets." + room_id, reason="Please set a title before inviting Telegram ghosts." ) return @@ -137,7 +138,8 @@ class MatrixHandler(BaseMatrixHandler): await portal.create_telegram_chat(invited_by, invites=invites, supergroup=True) except ValueError as e: await portal.delete() - return await portal.az.intent.send_notice(room_id, e.args[0]) + await portal.az.intent.send_notice(room_id, e.args[0]) + return async def handle_invite( self, room_id: RoomID, user_id: UserID, inviter: u.User, event_id: EventID diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index d554fbb7..e922ff42 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -438,7 +438,7 @@ class Portal(DBPortal, BasePortal): async def get_telegram_users_in_matrix_room( self, source: u.User, pre_create: bool = False - ) -> tuple[list[InputPeerUser], list[UserID]]: + ) -> tuple[list[InputUser], list[UserID]]: user_tgids = {} intent = self.az.intent if pre_create else self.main_intent user_mxids = await intent.get_room_members(self.mxid, (Membership.JOIN, Membership.INVITE))