From 2d13c30a262a80abb6d30612ee1aff50d264f246 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 21 Feb 2018 23:35:59 +0200 Subject: [PATCH] Fix possible errors --- mautrix_telegram/bot.py | 6 ++++++ mautrix_telegram/portal.py | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/mautrix_telegram/bot.py b/mautrix_telegram/bot.py index 0a6e71a4..5e29a5b2 100644 --- a/mautrix_telegram/bot.py +++ b/mautrix_telegram/bot.py @@ -65,6 +65,12 @@ class Bot(AbstractUser): except (ChannelPrivateError, ChannelInvalidError): self.remove_chat(id.channel_id) + def register_portal(self, portal): + self.add_chat(portal.tgid, portal.peer_type) + + def unregister_portal(self, portal): + self.remove_chat(portal.tgid) + def add_chat(self, id, type): if id not in self.chats: self.chats[id] = type diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 858c3a9a..22e5e519 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -491,8 +491,11 @@ class Portal: if self.peer_type == "user": await self.main_intent.leave_room(self.mxid) self.delete() - del self.by_tgid[self.tgid_full] - del self.by_mxid[self.mxid] + try: + del self.by_tgid[self.tgid_full] + del self.by_mxid[self.mxid] + except KeyError: + pass elif source and source.tgid != user.tgid: if self.peer_type == "chat": await source.client(DeleteChatUserRequest(chat_id=self.tgid, user_id=user.tgid))