Files
rfd-notify/rfd_notify/notifications.py

31 lines
733 B
Python

from datetime import datetime, timezone
import apprise
import humanize
from models.topic import Topic
from loguru import logger
from constants import API_BASE_URL
def send_notification(topic: Topic, expression: str, servers: str) -> None:
if servers is None:
logger.warning("APPRISE_URL is not set. Will not send notification")
return
apobj = apprise.Apprise()
apobj.add(servers)
subject = topic.title
body = f"""\
{API_BASE_URL}{topic.web_path}
{humanize.naturaltime(datetime.now(timezone.utc) - datetime.fromisoformat(topic.post_time))}
Matched by expression: {expression}
"""
logger.debug("Sending notification")
apobj.notify(
body=body,
title=subject,
)