Skip to content

Commit c24dc10

Browse files
committed
send more metadata to ntfy clients
1 parent 7193a5a commit c24dc10

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

frontend.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ def content_request_review(asset_id):
457457
moderation_message += f"Check it at {moderation_url}"
458458

459459
n = Notifier()
460-
n.message(moderation_message)
460+
n.message(moderation_message, asset=parse_asset(asset))
461461

462462
return jsonify(ok=True)
463463

notifier.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
from logging import getLogger
33

44
import paho.mqtt.client as mqtt
5+
from flask import url_for
56
from requests import post
67

78
from conf import CONFIG
9+
from util import cached_asset_name
810

911
LOG = getLogger("Notifier")
1012

@@ -22,7 +24,7 @@ def __init__(self):
2224
self.config["MQTT_USERNAME"], self.config["MQTT_PASSWORD"]
2325
)
2426

25-
def message(self, message, level="INFO", component=None):
27+
def message(self, message, level="INFO", component=None, asset=None):
2628
LOG.debug(f"{message=} {level=} {component=}")
2729
if self.mqtt:
2830
try:
@@ -32,7 +34,7 @@ def message(self, message, level="INFO", component=None):
3234

3335
for ntfy_url in self.config.get("NTFY", set()):
3436
try:
35-
self._ntfy_message(ntfy_url, message)
37+
self._ntfy_message(ntfy_url, message, asset)
3638
except Exception:
3739
LOG.exception(f"ntfy url {ntfy_url} failed sending")
3840

@@ -59,12 +61,22 @@ def _mqtt_message(self, message, level, component_suffix):
5961

6062
LOG.info("sent mqtt message")
6163

62-
def _ntfy_message(self, ntfy_url, message):
64+
def _ntfy_message(self, ntfy_url, message, asset):
6365
LOG.info(f"sending alert to {ntfy_url} with message {message!r}")
6466

67+
headers = {}
68+
if asset is not None:
69+
headers["Click"] = url_for(
70+
"content_moderate", asset_id=asset.id, _external=True
71+
)
72+
headers["Attach"] = url_for(
73+
"static", filename=cached_asset_name(asset), _external=True
74+
)
75+
6576
r = post(
6677
ntfy_url,
6778
data=str(message).encode("utf-8"),
79+
headers=headers,
6880
)
6981
r.raise_for_status()
7082

0 commit comments

Comments
 (0)