remind about persistent alerts

This commit is contained in:
Alex Tau 2025-06-06 00:46:44 +03:00
parent 2c234b2fd0
commit f691180e9b
9 changed files with 115 additions and 30 deletions

View file

@ -5,7 +5,7 @@ from telethon.sessions import MemorySession
from ..core import cvars
from .alert import Alert
from .enum import AlertType, Severity
from .enum import SEVERITY_TO_EMOJI, AlertType, Severity
async def get_client() -> TelegramClient:
@ -16,22 +16,14 @@ async def get_client() -> TelegramClient:
return client
def format_message(alert: Alert, persistent: bool) -> str:
match alert.severity:
case Severity.OK:
severity_emoji = "🟢"
case Severity.INFO:
severity_emoji = ""
case Severity.WARNING:
severity_emoji = "⚠️"
case Severity.CRITICAL:
severity_emoji = "🆘"
persistent_marker = " - <i>ongoing</i>" if persistent else ""
message = f"{severity_emoji} {alert.alert_type} Alert{persistent_marker}\n{alert.message}"
def format_message(alert: Alert, note: str) -> str:
severity_emoji = SEVERITY_TO_EMOJI[alert.severity]
note_formatted = f" - <i>{note}</i>" if note else ""
message = f"{severity_emoji} {alert.alert_type} Alert{note_formatted}\n{alert.message}"
return message
async def send_alert(alert: Alert, persistent: bool = False) -> None:
async def send_alert(alert: Alert, note: str = "") -> None:
try:
client = cvars.tg_client.get()
except LookupError: # being called standalone
@ -43,7 +35,7 @@ async def send_alert(alert: Alert, persistent: bool = False) -> None:
else:
... # temp_client = False
room_id = cvars.config.get().telegram.room_id
message = format_message(alert, persistent)
message = format_message(alert, note)
await client.send_message(entity=room_id, message=message)
# if temp_client:
# await client.close()