from __future__ import annotations import httpx from ...settings import Settings from .alertmanager import AlertmanagerNotifier from .base import Notifier from .debug import DebugNotifier from .telegram import TelegramNotifier from .webhook import WebhookNotifier def build_registry(settings: Settings, client: httpx.AsyncClient) -> dict[str, Notifier]: reg: dict[str, Notifier] = {} if settings.notifier_debug_enabled: reg["debug"] = DebugNotifier(settings.notification_time_zone) if ( settings.notifier_telegram_enabled and settings.notifier_telegram_token and settings.notifier_telegram_chat_id ): reg["telegram"] = TelegramNotifier( client, settings.notifier_telegram_token, settings.notifier_telegram_chat_id, settings.notification_time_zone, ) if settings.notifier_webhook_enabled and settings.notifier_webhook_url: reg["webhook"] = WebhookNotifier( client, settings.notifier_webhook_url, settings.notifier_webhook_token, settings.notification_time_zone, ) if settings.notifier_alertmanager_enabled and settings.notifier_alertmanager_url: reg["alertmanager"] = AlertmanagerNotifier( client, settings.notifier_alertmanager_url, settings.notification_time_zone ) return reg