From 2fe35a4ebb5d5d32261545009725bfaa7b294234 Mon Sep 17 00:00:00 2001 From: Cp0204 Date: Thu, 19 Jun 2025 09:59:14 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20ntfy=E6=8E=A8=E9=80=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=AF=E9=80=89=E7=9A=84=E8=AE=A4=E8=AF=81=E4=B8=8E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8A=A8=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - whyour/qinglong#2741 --- notify.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/notify.py b/notify.py index acfee54..aeee0b3 100644 --- a/notify.py +++ b/notify.py @@ -128,11 +128,15 @@ push_config = { 'NTFY_URL': '', # ntfy地址,如https://ntfy.sh 'NTFY_TOPIC': '', # ntfy的消息应用topic 'NTFY_PRIORITY':'3', # 推送消息优先级,默认为3 + 'NTFY_TOKEN': '', # 推送token,可选 + 'NTFY_USERNAME': '', # 推送用户名称,可选 + 'NTFY_PASSWORD': '', # 推送用户密码,可选 + 'NTFY_ACTIONS': '', # 推送用户动作,可选 'WXPUSHER_APP_TOKEN': '', # wxpusher 的 appToken 官方文档: https://wxpusher.zjiecode.com/docs/ 管理后台: https://wxpusher.zjiecode.com/admin/ 'WXPUSHER_TOPIC_IDS': '', # wxpusher 的 主题ID,多个用英文分号;分隔 topic_ids 与 uids 至少配置一个才行 'WXPUSHER_UIDS': '', # wxpusher 的 用户ID,多个用英文分号;分隔 topic_ids 与 uids 至少配置一个才行 - + 'DODO_BOTTOKEN': '', # DoDo机器人的token DoDo开发平台https://doker.imdodo.com/ 'DODO_BOTID': '', # DoDo机器人的id 'DODO_LANDSOURCEID': '', # DoDo机器人所在的群ID @@ -825,7 +829,14 @@ def ntfy(title: str, content: str) -> None: encoded_title = encode_rfc2047(title) data = content.encode(encoding="utf-8") - headers = {"Title": encoded_title, "Priority": priority} # 使用编码后的 title + headers = {"Title": encoded_title, "Priority": priority, "Icon": "https://qn.whyour.cn/logo.png"} # 使用编码后的 title + if push_config.get("NTFY_TOKEN"): + headers['Authorization'] = "Bearer " + push_config.get("NTFY_TOKEN") + elif push_config.get("NTFY_USERNAME") and push_config.get("NTFY_PASSWORD"): + authStr = push_config.get("NTFY_USERNAME") + ":" + push_config.get("NTFY_PASSWORD") + headers['Authorization'] = "Basic " + base64.b64encode(authStr.encode('utf-8')).decode('utf-8') + if push_config.get("NTFY_ACTIONS"): + headers['Actions'] = encode_rfc2047(push_config.get("NTFY_ACTIONS")) url = push_config.get("NTFY_URL") + "/" + push_config.get("NTFY_TOPIC") response = requests.post(url, data=data, headers=headers) @@ -863,7 +874,7 @@ def dodo_bot(title: str, content: str) -> None: } payload = json.dumps({ "islandSourceId": islandSourceId, - "dodoSourceId": dodoSourceId, + "dodoSourceId": dodoSourceId, "messageType": 1, "messageBody": { "content": f"{title}\n\n{content}"