feat: support dynamic links in msg or link-field
Some checks failed
ci / docker (push) Failing after 17s

This commit is contained in:
2025-06-05 21:45:16 +02:00
parent 35f9fc2a99
commit 4e4f53b330

View File

@@ -54,21 +54,32 @@ def ntfy_api_get_topic(ntfy_api_server, ntfy_api_token, username):
print(r.text) print(r.text)
return r.json().get("topic") return r.json().get("topic")
def ntfy_send(dispatch_uuid, user_topic, title, message, ntfy_push_target, ntfy_user, ntfy_pass): def ntfy_send(dispatch_uuid, user_topic, title, message, link,
ntfy_push_target, ntfy_user, ntfy_pass):
'''Send message via NTFY topic''' '''Send message via NTFY topic'''
# check message for links #
if not link:
pattern = r"https:\/\/[^\s]+"
match = re.search(pattern, text)
if match:
link = match.group(0)
# limit message length and title # # limit message length and title #
title = title or "" title = title or ""
message = message or "" message = message or ""
message = message[:1024] message = message[:1024]
title = title[:512] title = title[:512]
if not user_topic: if not user_topic:
report_failed_dispatch(dispatch_uuid, "No user topic") report_failed_dispatch(dispatch_uuid, "No user topic")
return return
try: try:
# build message # # build message #
payload = { payload = {
"topic" : user_topic, "topic" : user_topic,
@@ -77,7 +88,7 @@ def ntfy_send(dispatch_uuid, user_topic, title, message, ntfy_push_target, ntfy_
#"tags" : [], #"tags" : [],
"priority" : 4, "priority" : 4,
#"attach" : None, #"attach" : None,
"click" : "https://vid.pr0gramm.com/2022/11/06/ed66c8c5a9cd1a3b.mp4", "click" : link,
#"actions" : [] #"actions" : []
} }
@@ -190,6 +201,7 @@ if __name__ == "__main__":
method = entry["method"] method = entry["method"]
message = entry["message"] message = entry["message"]
title = entry.get("title") title = entry.get("title")
link = entry.get("link")
# method dependent fields # # method dependent fields #
phone = entry.get("phone") phone = entry.get("phone")
@@ -200,7 +212,7 @@ if __name__ == "__main__":
pass pass
elif method == "ntfy": elif method == "ntfy":
user_topic = ntfy_api_get_topic(ntfy_api_server, ntfy_api_token, user) user_topic = ntfy_api_get_topic(ntfy_api_server, ntfy_api_token, user)
ntfy_send(dispatch_uuid, user_topic, title, message, ntfy_send(dispatch_uuid, user_topic, title, message, link,
ntfy_push_target, ntfy_user, ntfy_pass) ntfy_push_target, ntfy_user, ntfy_pass)
elif method == "email": elif method == "email":
email_send(dispatch_uuid, email_address, message, smtp_target, email_send(dispatch_uuid, email_address, message, smtp_target,