mirror of
https://github.com/yshtcn/ServerChanPush2TelegramBot.git
synced 2025-12-13 09:40:24 +08:00
- TestStatus增加=5时,显示解码的未发送的消息json序列
- TestStatus增加=6时,清除所有未发送的消息 最近太忙了,没时间部分消息可能卡住的bug,因此临时采取下措施。
This commit is contained in:
parent
098958b1f9
commit
ebc47c474f
@ -247,7 +247,7 @@ def index():
|
|||||||
received_url = unquote(received_url)
|
received_url = unquote(received_url)
|
||||||
received_data = request.form.to_dict() if request.form else None
|
received_data = request.form.to_dict() if request.form else None
|
||||||
|
|
||||||
# 保存接收到的请求数据
|
# Save received request data
|
||||||
converted_received_data = convert_str_gbk_to_utf8(str(received_data))
|
converted_received_data = convert_str_gbk_to_utf8(str(received_data))
|
||||||
save_received_data(received_url, converted_received_data)
|
save_received_data(received_url, converted_received_data)
|
||||||
|
|
||||||
@ -260,10 +260,10 @@ def index():
|
|||||||
desp = request.args.get('desp') or (received_data.get('desp') if received_data else None)
|
desp = request.args.get('desp') or (received_data.get('desp') if received_data else None)
|
||||||
url = request.args.get('url') or (received_data.get('url') if received_data else None)
|
url = request.args.get('url') or (received_data.get('url') if received_data else None)
|
||||||
|
|
||||||
# 初始化一个空列表来保存错误信息
|
# Initialize empty list for error messages
|
||||||
error_list = []
|
error_list = []
|
||||||
|
|
||||||
# 分别检查 bot_id, chat_id, 和 title 是否为空
|
# Check if bot_id, chat_id, and title are empty
|
||||||
if bot_id is None:
|
if bot_id is None:
|
||||||
error_list.append("bot_id is a required field.")
|
error_list.append("bot_id is a required field.")
|
||||||
if chat_id is None:
|
if chat_id is None:
|
||||||
@ -271,7 +271,7 @@ def index():
|
|||||||
if title is None:
|
if title is None:
|
||||||
error_list.append("title is a required field.")
|
error_list.append("title is a required field.")
|
||||||
|
|
||||||
# 如果 error_list 不为空,返回错误信息和 400 状态码
|
# If error_list is not empty, return error messages and 400 status code
|
||||||
if error_list:
|
if error_list:
|
||||||
TestStatus = request.args.get('TestStatus') or (received_data.get('TestStatus') if received_data else None)
|
TestStatus = request.args.get('TestStatus') or (received_data.get('TestStatus') if received_data else None)
|
||||||
if TestStatus is None:
|
if TestStatus is None:
|
||||||
@ -279,6 +279,7 @@ def index():
|
|||||||
else:
|
else:
|
||||||
pending_messages = read_pending_messages()
|
pending_messages = read_pending_messages()
|
||||||
pending_count = len(pending_messages)
|
pending_count = len(pending_messages)
|
||||||
|
|
||||||
if TestStatus == '1':
|
if TestStatus == '1':
|
||||||
return jsonify({"ok": "the test passed"}), 200
|
return jsonify({"ok": "the test passed"}), 200
|
||||||
elif TestStatus == '2':
|
elif TestStatus == '2':
|
||||||
@ -295,18 +296,15 @@ def index():
|
|||||||
success, _ = send_telegram_message(msg['bot_id'], msg['chat_id'], msg['title'], msg['desp'], msg.get('url'))
|
success, _ = send_telegram_message(msg['bot_id'], msg['chat_id'], msg['title'], msg['desp'], msg.get('url'))
|
||||||
if not success:
|
if not success:
|
||||||
new_pending_messages.append(msg)
|
new_pending_messages.append(msg)
|
||||||
# 更新待发送消息列表,只包含失败的消息
|
|
||||||
write_pending_messages(new_pending_messages)
|
write_pending_messages(new_pending_messages)
|
||||||
return jsonify({"ok": "re-sent pending messages", "pending_messages_count": pending_count, "remaining_pending_messages_count": len(new_pending_messages)}), 200
|
return jsonify({"ok": "re-sent pending messages", "pending_messages_count": pending_count, "remaining_pending_messages_count": len(new_pending_messages)}), 200
|
||||||
else:
|
else:
|
||||||
return jsonify({"ok": "no pending messages to re-send", "pending_messages_count": pending_count}), 200
|
return jsonify({"ok": "no pending messages to re-send", "pending_messages_count": pending_count}), 200
|
||||||
elif TestStatus == '4':
|
elif TestStatus == '4':
|
||||||
# 读取当前待发送消息数量
|
|
||||||
pending_messages = read_pending_messages()
|
pending_messages = read_pending_messages()
|
||||||
pending_count = len(pending_messages)
|
pending_count = len(pending_messages)
|
||||||
|
|
||||||
if pending_count == 0:
|
if pending_count == 0:
|
||||||
# 如果没有待发送消息,直接返回与 TestStatus == '3' 一致的结构
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"ok": "no pending messages to re-send",
|
"ok": "no pending messages to re-send",
|
||||||
"pending_messages_count": pending_count,
|
"pending_messages_count": pending_count,
|
||||||
@ -314,53 +312,68 @@ def index():
|
|||||||
"successfully_sent_count": 0
|
"successfully_sent_count": 0
|
||||||
}), 200
|
}), 200
|
||||||
|
|
||||||
# 调用批量发送逻辑,每次最多发送10条
|
|
||||||
result = send_messages_in_batches(batch_size=3)
|
result = send_messages_in_batches(batch_size=3)
|
||||||
|
|
||||||
# 读取剩余待发送消息数量
|
|
||||||
remaining_messages = read_pending_messages()
|
remaining_messages = read_pending_messages()
|
||||||
remaining_count = len(remaining_messages)
|
remaining_count = len(remaining_messages)
|
||||||
|
|
||||||
# 返回结果与 TestStatus == '3' 保持一致,并增加成功发送条数
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"ok": "batch processed",
|
"ok": "batch processed",
|
||||||
"pending_messages_count": pending_count,
|
"pending_messages_count": pending_count,
|
||||||
"remaining_pending_messages_count": remaining_count,
|
"remaining_pending_messages_count": remaining_count,
|
||||||
"successfully_sent_count": result["successfully_sent_count"]
|
"successfully_sent_count": result["successfully_sent_count"]
|
||||||
}), 200
|
}), 200
|
||||||
|
elif TestStatus == '5':
|
||||||
|
pending_messages = read_pending_messages()
|
||||||
|
if not pending_messages:
|
||||||
|
return jsonify({
|
||||||
|
"ok": "no pending messages",
|
||||||
|
"messages": []
|
||||||
|
}), 200
|
||||||
|
|
||||||
|
# Create a new list without bot_id for each message
|
||||||
|
safe_messages = []
|
||||||
|
for msg in pending_messages:
|
||||||
|
safe_msg = {
|
||||||
|
'chat_id': msg['chat_id'],
|
||||||
|
'title': msg['title'],
|
||||||
|
'desp': msg['desp'],
|
||||||
|
'url': msg.get('url')
|
||||||
|
}
|
||||||
|
safe_messages.append(safe_msg)
|
||||||
|
|
||||||
|
return jsonify({
|
||||||
|
"ok": "pending messages retrieved",
|
||||||
|
"messages": safe_messages,
|
||||||
|
"total_count": len(safe_messages),
|
||||||
|
"clear_messages_url": request.host_url + "?TestStatus=6"
|
||||||
|
}), 200
|
||||||
|
elif TestStatus == '6':
|
||||||
|
# Clear all pending messages
|
||||||
|
write_pending_messages([])
|
||||||
|
return jsonify({
|
||||||
|
"ok": "all pending messages cleared",
|
||||||
|
"remaining_messages_count": 0
|
||||||
|
}), 200
|
||||||
|
|
||||||
|
# Original message sending logic continues...
|
||||||
# 原始的消息发送逻辑
|
|
||||||
pending_messages = read_pending_messages()
|
pending_messages = read_pending_messages()
|
||||||
|
|
||||||
success, response = send_telegram_message(bot_id, chat_id, title, desp, url)
|
success, response = send_telegram_message(bot_id, chat_id, title, desp, url)
|
||||||
|
|
||||||
if success:
|
if success:
|
||||||
# new_pending_messages = []
|
|
||||||
# for msg in pending_messages:
|
|
||||||
# success, _ = send_telegram_message(msg['bot_id'], msg['chat_id'], msg['title'], msg['desp'], msg.get('url'))
|
|
||||||
# if not success:
|
|
||||||
# new_pending_messages.append(msg)
|
|
||||||
# # 更新待发送消息列表,只包含失败的消息
|
|
||||||
# write_pending_messages(new_pending_messages)
|
|
||||||
pending_messages = read_pending_messages()
|
pending_messages = read_pending_messages()
|
||||||
pending_count = len(pending_messages)
|
pending_count = len(pending_messages)
|
||||||
|
|
||||||
if pending_count == 0:
|
if pending_count == 0:
|
||||||
# 如果没有待发送消息,直接返回与 TestStatus == '3' 一致的结构
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"ok": "send message success",
|
"ok": "send message success",
|
||||||
"response": response,
|
"response": response,
|
||||||
}), 200
|
}), 200
|
||||||
|
|
||||||
# 调用批量发送逻辑,每次最多发送10条
|
|
||||||
result = send_messages_in_batches(batch_size=2)
|
result = send_messages_in_batches(batch_size=2)
|
||||||
|
|
||||||
# 读取剩余待发送消息数量
|
|
||||||
remaining_messages = read_pending_messages()
|
remaining_messages = read_pending_messages()
|
||||||
remaining_count = len(remaining_messages)
|
remaining_count = len(remaining_messages)
|
||||||
|
|
||||||
# 返回结果与 TestStatus == '3' 保持一致,并增加成功发送条数
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
"ok": "send message success and batch processed",
|
"ok": "send message success and batch processed",
|
||||||
"pending_messages_count": pending_count,
|
"pending_messages_count": pending_count,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user