19 lines
788 B
Python
Raw Permalink Normal View History

2025-07-19 11:56:30 +01:00
import json
2025-07-18 17:51:48 +01:00
from flask import current_app
from pywebpush import webpush, WebPushException
2025-07-19 11:56:30 +01:00
from ktvmanager.lib.database import delete_push_subscription
2025-07-18 17:51:48 +01:00
2025-07-19 11:56:30 +01:00
def send_notification(subscription_json, message_body):
2025-07-18 17:51:48 +01:00
try:
2025-07-19 11:56:30 +01:00
subscription_info = json.loads(subscription_json)
2025-07-18 17:51:48 +01:00
webpush(
subscription_info=subscription_info,
data=message_body,
vapid_private_key=current_app.config["VAPID_PRIVATE_KEY"],
vapid_claims={"sub": current_app.config["VAPID_CLAIM_EMAIL"]},
)
except WebPushException as ex:
print(f"Web push error: {ex}")
if ex.response and ex.response.status_code == 410:
print("Subscription is no longer valid, removing from DB.")
2025-07-19 11:56:30 +01:00
delete_push_subscription(subscription_json)