44 lines
2.3 KiB
Python
44 lines
2.3 KiB
Python
import requests
|
|
import json
|
|
import re
|
|
from scripts.ad import get_advertise
|
|
|
|
|
|
# 定义函数send_message,用于发送消息
|
|
def send_message(token, title, content):
|
|
# 推送消息的url,格式化字符串以包含token
|
|
url = f"https://push.showdoc.com.cn/server/api/push/{token}"
|
|
# 调用get_advertise函数获取广告内容
|
|
advertise = get_advertise()
|
|
# 如果广告内容不为空,则将广告内容添加到消息内容前
|
|
content = f"{advertise}{content}" if advertise else content
|
|
# 定义正则表达式模式,用于匹配包含“教学班ID”的行
|
|
pattern = re.compile(r"^.*教学班ID.*$\n?", re.MULTILINE)
|
|
# 使用正则表达式替换匹配的行为空字符串,并去除前后的空白字符
|
|
content = re.sub(pattern, "", content).strip()
|
|
# 定义一个字典,用于存储需要替换的字符串及其对应的替换值
|
|
replacements = {
|
|
"------": "\n------\n", # 替换多连字符为换行后的连字符
|
|
"个人信息:": "<h1>个人信息</h1>\n", # 替换“个人信息:”为HTML标题标签
|
|
"成绩信息:": "<h1>成绩信息</h1>\n", # 替换“成绩信息:”为HTML标题标签
|
|
"未公布成绩的课程:": "<h1>未公布成绩的课程</h1>\n", # 替换“未公布成绩的课程:”为HTML标题标签
|
|
"工作流信息:": "<h1>工作流信息</h1>\n", # 替换“工作流信息:”为HTML标题标签
|
|
"Copyright © 2024 NianBroken. All rights reserved.": "Copyright © 2024 <a href='https://www.nianbroken.top/' target='_blank'>NianBroken</a>. All rights reserved.", # 替换版权信息为带有超链接的HTML
|
|
}
|
|
# 遍历字典中的所有键值对,进行替换操作
|
|
for old, new in replacements.items():
|
|
content = content.replace(old, new)
|
|
# 创建一个字典,包含标题和内容
|
|
data = {"title": title, "content": content}
|
|
# 将字典转换为JSON字符串,并编码为UTF-8
|
|
body = json.dumps(data).encode(encoding="utf-8")
|
|
# 定义HTTP请求头,设置内容类型为JSON
|
|
headers = {"Content-Type": "application/json"}
|
|
# 发送POST请求,携带JSON数据和请求头
|
|
response = requests.post(url, data=body, headers=headers)
|
|
# 解析响应的JSON数据,转换为字典
|
|
response_dict = json.loads(response.text)
|
|
|
|
# 返回响应字典
|
|
return response_dict
|