mirror of
https://github.com/yshtcn/ServerChanPush2TelegramBot.git
synced 2025-12-13 17:50:22 +08:00
Update ServerChanPush2TelegramBot.py
新增有限重发参数4
This commit is contained in:
parent
77274c1248
commit
c63073970a
@ -92,6 +92,42 @@ def convert_str_gbk_to_utf8(text_str):
|
|||||||
return text_str
|
return text_str
|
||||||
except:
|
except:
|
||||||
return text_str # 如果转换失败,则返回原始字符串
|
return text_str # 如果转换失败,则返回原始字符串
|
||||||
|
|
||||||
|
|
||||||
|
def send_messages_in_batches(batch_size=10):
|
||||||
|
"""
|
||||||
|
批量发送待发送的消息,每次最多发送 batch_size 条。
|
||||||
|
:param batch_size: 每批次发送的最大消息数量
|
||||||
|
:return: 成功发送的数量和剩余待发送消息数量
|
||||||
|
"""
|
||||||
|
pending_messages = read_pending_messages()
|
||||||
|
if not pending_messages:
|
||||||
|
return {"message": "No pending messages to send", "pending_messages_count": 0}
|
||||||
|
|
||||||
|
to_send = pending_messages[:batch_size] # 取出前 batch_size 条消息
|
||||||
|
remaining_messages = pending_messages[batch_size:] # 保留剩余的消息
|
||||||
|
failed_messages = []
|
||||||
|
|
||||||
|
for msg in to_send:
|
||||||
|
success, _ = send_telegram_message(
|
||||||
|
msg['bot_id'],
|
||||||
|
msg['chat_id'],
|
||||||
|
msg['title'],
|
||||||
|
msg.get('desp'),
|
||||||
|
msg.get('url')
|
||||||
|
)
|
||||||
|
if not success:
|
||||||
|
failed_messages.append(msg)
|
||||||
|
|
||||||
|
# 将失败的消息与剩余未尝试发送的消息合并,并写回文件
|
||||||
|
remaining_messages.extend(failed_messages)
|
||||||
|
write_pending_messages(remaining_messages)
|
||||||
|
|
||||||
|
return {
|
||||||
|
"message": "Batch processing completed",
|
||||||
|
"successfully_sent_count": len(to_send) - len(failed_messages),
|
||||||
|
"remaining_pending_messages_count": len(remaining_messages)
|
||||||
|
}
|
||||||
|
|
||||||
# 读取待发送的消息
|
# 读取待发送的消息
|
||||||
def read_pending_messages():
|
def read_pending_messages():
|
||||||
@ -264,6 +300,21 @@ def index():
|
|||||||
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':
|
||||||
|
# 调用批量发送逻辑,每次最多发送10条
|
||||||
|
result = send_messages_in_batches(batch_size=10)
|
||||||
|
|
||||||
|
# 读取剩余待发送消息数量
|
||||||
|
remaining_messages = read_pending_messages()
|
||||||
|
remaining_count = len(remaining_messages)
|
||||||
|
|
||||||
|
# 返回结果中包含剩余待发送消息数量
|
||||||
|
return jsonify({
|
||||||
|
"ok": "batch processed",
|
||||||
|
"successfully_sent_count": result["successfully_sent_count"],
|
||||||
|
"remaining_pending_messages_count": remaining_count,
|
||||||
|
"message": result["message"]
|
||||||
|
}), 200
|
||||||
|
|
||||||
# 原始的消息发送逻辑
|
# 原始的消息发送逻辑
|
||||||
pending_messages = read_pending_messages()
|
pending_messages = read_pending_messages()
|
||||||
@ -296,6 +347,9 @@ def index():
|
|||||||
write_pending_messages(pending_messages)
|
write_pending_messages(pending_messages)
|
||||||
return jsonify({"error": "Failed to send message, added to pending list"}), 202
|
return jsonify({"error": "Failed to send message, added to pending list"}), 202
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
config = load_config()
|
config = load_config()
|
||||||
port = config[0].get("port", 5000)
|
port = config[0].get("port", 5000)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user