Implement disabling notifications while backfilling

This commit is contained in:
Tulir Asokan
2020-07-29 22:47:00 +03:00
parent ffcfd019c2
commit 5e8aa8818f
+10 -6
View File
@@ -39,6 +39,7 @@ from mautrix.appservice import IntentAPI
from mautrix.types import (EventID, UserID, ImageInfo, ThumbnailInfo, RelatesTo, MessageType, from mautrix.types import (EventID, UserID, ImageInfo, ThumbnailInfo, RelatesTo, MessageType,
EventType, MediaMessageEventContent, TextMessageEventContent, EventType, MediaMessageEventContent, TextMessageEventContent,
LocationMessageEventContent, Format) LocationMessageEventContent, Format)
from mautrix.bridge import NotificationDisabler
from ..types import TelegramID from ..types import TelegramID
from ..db import Message as DBMessage, TelegramFile as DBTelegramFile from ..db import Message as DBMessage, TelegramFile as DBTelegramFile
@@ -466,12 +467,13 @@ class PortalTelegram(BasePortal, ABC):
self.backfill_leave.add(sender.default_mxid_intent) self.backfill_leave.add(sender.default_mxid_intent)
client = source.client client = source.client
if limit > config["bridge.backfill.takeout_limit"]: async with NotificationDisabler(self.mxid, source):
self.log.debug(f"Opening takeout client for {source.tgid}") if limit > config["bridge.backfill.takeout_limit"]:
async with client.takeout(**self._takeout_options) as takeout: self.log.debug(f"Opening takeout client for {source.tgid}")
count = await self._backfill_messages(source, min_id, limit, takeout) async with client.takeout(**self._takeout_options) as takeout:
else: count = await self._backfill_messages(source, min_id, limit, takeout)
count = await self._backfill_messages(source, min_id, limit, client) else:
count = await self._backfill_messages(source, min_id, limit, client)
for intent in self.backfill_leave: for intent in self.backfill_leave:
self.log.trace("Leaving room with %s post-backfill", intent.mxid) self.log.trace("Leaving room with %s post-backfill", intent.mxid)
@@ -683,3 +685,5 @@ class PortalTelegram(BasePortal, ABC):
def init(context: Context) -> None: def init(context: Context) -> None:
global config global config
config = context.config config = context.config
NotificationDisabler.puppet_cls = p.Puppet
NotificationDisabler.config_enabled = config["bridge.backfill.disable_notifications"]