From fe32475e10a6bbea8e5ae499d4333a963d450bcd Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 31 May 2018 11:19:24 +0300 Subject: [PATCH] Fix kicking Telegram puppets and fix error message when bridging chats you've left --- mautrix_telegram/commands/portal.py | 7 +++++++ mautrix_telegram/matrix.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mautrix_telegram/commands/portal.py b/mautrix_telegram/commands/portal.py index 345b31d4..19e61ba4 100644 --- a/mautrix_telegram/commands/portal.py +++ b/mautrix_telegram/commands/portal.py @@ -17,6 +17,7 @@ import asyncio from telethon.errors import * +from telethon.tl.types import ChatForbidden, ChannelForbidden from mautrix_appservice import MatrixRequestError from .. import portal as po @@ -258,6 +259,12 @@ async def confirm_bridge(evt: CommandEvent): else: return await evt.reply("Failed to get info of telegram chat. " "You're not logged in, is the relay bot in the chat?") + if isinstance(entity, (ChatForbidden, ChannelForbidden)): + if evt.sender.logged_in: + return await evt.reply("You don't seem to be in that chat.") + else: + return await evt.reply("The bot doesn't seem to be in that chat.") + direct = False portal.mxid = bridge_to_mxid diff --git a/mautrix_telegram/matrix.py b/mautrix_telegram/matrix.py index 97f579de..1f122f7d 100644 --- a/mautrix_telegram/matrix.py +++ b/mautrix_telegram/matrix.py @@ -154,7 +154,7 @@ class MatrixHandler: puppet = Puppet.get_by_mxid(user) if sender and puppet: - await portal.leave_matrix(puppet, sender) + await portal.leave_matrix(puppet, sender, event_id) user = User.get_by_mxid(user, create=False) if not user: