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": "GIA"}
    if title:
        headers["Title"] = title
    if priority:
        headers["Priority"] = priority
    if tags:
        headers["Tags"] = tags
    requests.post(
        f"{url}/{topic}",
        data=msg,
        headers=headers,
    )


# Sendmsg helper to send a message to a user's notification settings
def sendmsg(user, *args, **kwargs):
    notification_settings = user.get_notification_settings()

    if notification_settings.ntfy_topic is None:
        # No topic set, so don't send
        return
    else:
        topic = notification_settings.ntfy_topic

    raw_sendmsg(*args, **kwargs, url=notification_settings.ntfy_url, topic=topic)
