wyzely-detect/src/utils/notify.py

38 lines
1.1 KiB
Python

import datetime
import httpx
def construct_ntfy_headers(
title: str = "Object/Person Detected",
tag = "rotating_light", # https://docs.ntfy.sh/publish/#tags-emojis
priority = "default", # https://docs.ntfy.sh/publish/#message-priority
) -> (dict):
return {
'Title': title,
'Priority': priority,
'Tags': tag
}
def send_notification(
data: str,
headers: dict,
url: str
):
if url is None or data is None:
raise ValueError("url and data cannot be None")
httpx.post(url, data=data.encode('utf-8'), headers=headers)
def check_last_seen(last_seen: datetime.datetime, seconds: int = 15):
'''
Check if a time is older than a given number of seconds
If it is, return True
If last_seen is empty/null, return True
'''
if (
datetime.datetime.now() - last_seen > datetime.timedelta(seconds=seconds)
or last_seen == ""
or last_seen is None
):
return True
else:
return False