mirror of
https://github.com/whyour/qinglong.git
synced 2026-07-01 04:40:38 +08:00
改进ntfy通知,将中文标题进行编码后发送 (#2541)
* 1.改进ntfy通知,将中文标题进行编码后发送,可以直接展示中文标题;2.改进notify.py和notify.js中ntfy的推送; --------- Co-authored-by: qiaoyun680 <qiaoyun680>
This commit is contained in:
+17
-7
@@ -116,7 +116,7 @@ push_config = {
|
||||
'WEBHOOK_BODY': '', # 自定义通知 请求体
|
||||
'WEBHOOK_HEADERS': '', # 自定义通知 请求头
|
||||
'WEBHOOK_METHOD': '', # 自定义通知 请求方法
|
||||
'WEBHOOK_CONTENT_TYPE': '' # 自定义通知 content-type
|
||||
'WEBHOOK_CONTENT_TYPE': '', # 自定义通知 content-type
|
||||
|
||||
'NTFY_URL': '', # ntfy地址,如https://ntfy.sh
|
||||
'NTFY_TOPIC': '', # ntfy的消息应用topic
|
||||
@@ -789,6 +789,12 @@ def ntfy(title: str, content: str) -> None:
|
||||
"""
|
||||
通过 Ntfy 推送消息
|
||||
"""
|
||||
def encode_rfc2047(text: str) -> str:
|
||||
"""将文本编码为符合 RFC 2047 标准的格式"""
|
||||
encoded_bytes = base64.b64encode(text.encode('utf-8'))
|
||||
encoded_str = encoded_bytes.decode('utf-8')
|
||||
return f'=?utf-8?B?{encoded_str}?='
|
||||
|
||||
if not push_config.get("NTFY_TOPIC"):
|
||||
print("ntfy 服务的 NTFY_TOPIC 未设置!!\n取消推送")
|
||||
return
|
||||
@@ -798,18 +804,22 @@ def ntfy(title: str, content: str) -> None:
|
||||
print("ntfy 服务的NTFY_PRIORITY 未设置!!默认设置为3")
|
||||
else:
|
||||
priority = push_config.get("NTFY_PRIORITY")
|
||||
data = (title + "\n" +content).encode(encoding='utf-8')
|
||||
|
||||
# 使用 RFC 2047 编码 title
|
||||
encoded_title = encode_rfc2047(title)
|
||||
|
||||
data = content.encode(encoding='utf-8')
|
||||
headers = {
|
||||
"Title": "qinglong",
|
||||
"Title": encoded_title, # 使用编码后的 title
|
||||
"Priority": priority
|
||||
}
|
||||
|
||||
url = push_config.get("NTFY_URL") + "/" + push_config.get("NTFY_TOPIC")
|
||||
response = requests.post(url, data=data, headers=headers)
|
||||
|
||||
if response["code"] == 200:
|
||||
if response.status_code == 200: # 使用 response.status_code 进行检查
|
||||
print("Ntfy 推送成功!")
|
||||
else:
|
||||
print("Ntfy 推送失败!错误信息:", response)
|
||||
print("Ntfy 推送失败!错误信息:", response.text)
|
||||
|
||||
def parse_headers(headers):
|
||||
if not headers:
|
||||
@@ -1014,4 +1024,4 @@ def main():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
Reference in New Issue
Block a user