Implement disabling notifications while backfilling
This commit is contained in:
@@ -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"]
|
||||||
|
|||||||
Reference in New Issue
Block a user