32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
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()
|
|
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
|
|
)
|
|
if settings.notifier_webhook_enabled and settings.notifier_webhook_url:
|
|
reg["webhook"] = WebhookNotifier(
|
|
client, settings.notifier_webhook_url, settings.notifier_webhook_token
|
|
)
|
|
if settings.notifier_alertmanager_enabled and settings.notifier_alertmanager_url:
|
|
reg["alertmanager"] = AlertmanagerNotifier(client, settings.notifier_alertmanager_url)
|
|
return reg
|