From cf88823e6f0166914d8e9a73f8b4d0522ab0fa82 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 4 Feb 2020 22:50:58 +0200 Subject: [PATCH] Add support for backfilling private chats --- mautrix_telegram/commands/telegram/misc.py | 9 +++++++-- mautrix_telegram/portal/telegram.py | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mautrix_telegram/commands/telegram/misc.py b/mautrix_telegram/commands/telegram/misc.py index 67fd8bf4..678f7ddd 100644 --- a/mautrix_telegram/commands/telegram/misc.py +++ b/mautrix_telegram/commands/telegram/misc.py @@ -315,5 +315,10 @@ async def backfill(evt: CommandEvent) -> None: try: await portal.backfill(evt.sender) except TakeoutInitDelayError: - await evt.reply("Please accept the data export request from a mobile device, " - "then re-run the backfill command.") + msg = ("Please accept the data export request from a mobile device, " + "then re-run the backfill command.") + if portal.peer_type == "user": + from mautrix.appservice import IntentAPI + await portal.main_intent.send_notice(evt.room_id, msg) + else: + await evt.reply(msg) diff --git a/mautrix_telegram/portal/telegram.py b/mautrix_telegram/portal/telegram.py index 73c7238a..b08f8ad6 100644 --- a/mautrix_telegram/portal/telegram.py +++ b/mautrix_telegram/portal/telegram.py @@ -361,6 +361,11 @@ class PortalTelegram(BasePortal, ABC): min_id = last.tgid if last else 0 self.backfilling = True self.backfill_leave = set() + if self.peer_type == "user": + sender = p.Puppet.get(source.tgid) + await self.main_intent.invite_user(self.mxid, sender.default_mxid) + await sender.default_mxid_intent.join_room_by_id(self.mxid) + self.backfill_leave.add(sender.default_mxid_intent) max_file_size = min(config["bridge.max_document_size"], 1500) * 1024 * 1024 async with source.client.takeout(files=True, megagroups=self.megagroup, chats=self.peer_type == "chat",