mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
44 lines
1.5 KiB
Python
Executable File
44 lines
1.5 KiB
Python
Executable File
|
|
import conf
|
|
import requests
|
|
from base64 import b64encode
|
|
|
|
from logger import mylog
|
|
from helper import noti_struc
|
|
|
|
#-------------------------------------------------------------------------------
|
|
def check_config():
|
|
if conf.NTFY_HOST == '' or conf.NTFY_TOPIC == '':
|
|
mylog('none', ['[Check Config] Error: NTFY service not set up correctly. Check your pialert.conf NTFY_* variables.'])
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
#-------------------------------------------------------------------------------
|
|
def send (msg: noti_struc):
|
|
|
|
headers = {
|
|
"Title": "Pi.Alert Notification",
|
|
"Actions": "view, Open Dashboard, "+ conf.REPORT_DASHBOARD_URL,
|
|
"Priority": "urgent",
|
|
"Tags": "warning"
|
|
}
|
|
# if username and password are set generate hash and update header
|
|
if conf.NTFY_USER != "" and conf.NTFY_PASSWORD != "":
|
|
# Generate hash for basic auth
|
|
# usernamepassword = "{}:{}".format(conf.NTFY_USER,conf.NTFY_PASSWORD)
|
|
basichash = b64encode(bytes(conf.NTFY_USER + ':' + conf.NTFY_PASSWORD, "utf-8")).decode("ascii")
|
|
|
|
# add authorization header with hash
|
|
headers["Authorization"] = "Basic {}".format(basichash)
|
|
|
|
try:
|
|
requests.post("{}/{}".format( conf.NTFY_HOST, conf.NTFY_TOPIC),
|
|
data=msg.text,
|
|
headers=headers)
|
|
except requests.exceptions.RequestException as e:
|
|
mylog('none', ['[NTFY] Error: ', e])
|
|
return -1
|
|
|
|
return 0
|