import requests from core.util import logs NTFY_URL = "https://ntfy.sh" log = logs.get_logger(__name__) # Actual function to send a message to a topic def raw_sendmsg(msg, title=None, priority=None, tags=None, url=None, topic=None): if url is None: url = NTFY_URL headers = {"Title": "Fisk"} if title: headers["Title"] = title if priority: headers["Priority"] = priority if tags: headers["Tags"] = tags try: requests.post( f"{url}/{topic}", data=msg, headers=headers, ) except requests.exceptions.ConnectionError as e: log.error(f"Error sending notification: {e}") # Sendmsg helper to send a message to a user's notification settings def sendmsg(user, *args, **kwargs): notification_settings = user.get_notification_settings() if "topic" not in kwargs: if notification_settings.ntfy_topic is None: # No topic set, so don't send return else: kwargs["topic"] = notification_settings.ntfy_topic raw_sendmsg(*args, **kwargs, url=notification_settings.ntfy_url)