diff --git a/mautrix_telegram/commands/clean_rooms.py b/mautrix_telegram/commands/clean_rooms.py index 05971af4..612c096c 100644 --- a/mautrix_telegram/commands/clean_rooms.py +++ b/mautrix_telegram/commands/clean_rooms.py @@ -13,6 +13,8 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see . +from mautrix_appservice import MatrixRequestError + from . import command_handler from .. import puppet as pu, portal as po @@ -27,7 +29,10 @@ async def _find_rooms(intent): for room in rooms: portal = po.Portal.get_by_mxid(room) if not portal: - members = await intent.get_room_members(room) + try: + members = await intent.get_room_members(room) + except MatrixRequestError: + members = [] if len(members) == 2: other_member = members[0] if members[0] != intent.mxid else members[1] if pu.Puppet.get_id_from_mxid(other_member): diff --git a/mautrix_telegram/portal.py b/mautrix_telegram/portal.py index 15312eb5..2138d848 100644 --- a/mautrix_telegram/portal.py +++ b/mautrix_telegram/portal.py @@ -29,7 +29,7 @@ from telethon.tl.functions.messages import * from telethon.tl.functions.channels import * from telethon.errors.rpc_error_list import * from telethon.tl.types import * -from mautrix_appservice import MatrixRequestError +from mautrix_appservice import MatrixRequestError, IntentError from .db import Portal as DBPortal, Message as DBMessage from . import puppet as p, user as u, formatter @@ -360,7 +360,10 @@ class Portal: return link.link async def get_authenticated_matrix_users(self): - members = await self.main_intent.get_room_members(self.mxid) + try: + members = await self.main_intent.get_room_members(self.mxid) + except MatrixRequestError: + return [] authenticated = [] for member in members: if p.Puppet.get_id_from_mxid(member) or member == self.main_intent.mxid: @@ -380,7 +383,7 @@ class Portal: if user != intent.mxid: try: await intent.kick(room_id, user, f"{type} deleted.") - except MatrixRequestError: + except (MatrixRequestError, IntentError): pass await intent.leave_room(room_id)