mirror of
https://github.com/unixtensor/proxmox-ntfy.git
synced 2025-06-28 03:48:05 +00:00
36 lines
967 B
Python
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")
|