Files
proxmox-ntfy/src/ntfy.py

36 lines
967 B
Python

import requests
from typing import TypedDict, Optional
from print_t import print_t
from enum import Enum
class HeaderPriority(Enum):
Urgent = "5"
High = "4"
Medium = "3"
Low = "2"
Min = "1"
class Headers(TypedDict):
Priority: HeaderPriority
Title: str
Tags: str
class Ntfy:
def __init__(self, server: str, logging_disabled: bool):
self.server = server
self.logging_disabled = logging_disabled
def send(self, message: str, title: Optional[str] = None, extra_headers: Optional[Headers] = None):
headers = {}
if title:
headers["Title"] = title.encode(encoding="utf-8")
if extra_headers:
headers.update(extra_headers)
if not self.logging_disabled:
print_t(f"Ntfy OUT: \033[0;35mtitle\033[0m={title} \033[0;35mmessage\033[0m={message} \033[0;35mheaders\033[0m={headers}")
try:
requests.post(self.server, data=message.encode(encoding="utf-8"), headers=headers)
except Exception as err:
print_t(f"\033[31m{err}\033[0m")