实现消息回复状态机制替代_seen_messages集合
- Task #1673: 在user_messages表添加reply_status和fail_count字段 - 实现mark_message_replied和mark_message_send_failed方法 - SQLite UPDATE语法修复:改用子查询方式避免ORDER BY+LIMIT错误 - 在gui.py中集成发送成功/失败状态标记 - 事不过三原则:连续3次发送失败后强制标记为已回复
This commit is contained in:
@@ -1380,6 +1380,9 @@ class MsgBotApp(ctk.CTk):
|
||||
ok = self.monitor._paste_and_send(platform, answer, force_retry=(attempt > 0))
|
||||
if ok:
|
||||
self._log(f"[{platform}] 🤖 已自动回复: {answer[:60]}...")
|
||||
# ⭐ Task #1673: 发送成功,标记消息已回复
|
||||
if msg:
|
||||
self.monitor.mark_message_replied(platform, msg)
|
||||
return # 成功直接退出
|
||||
else:
|
||||
if attempt < max_retries - 1:
|
||||
@@ -1394,6 +1397,9 @@ class MsgBotApp(ctk.CTk):
|
||||
self.after(int(retry_delay * 1000), lambda d=data: self._execute_reply(d))
|
||||
else:
|
||||
self._log(f"[{platform}] ⚠ 自动回复发送失败(连续{max_retries}次),用户可能在接管,本轮跳过")
|
||||
# ⭐ Task #1673: 连续3次发送失败,标记消息发送失败
|
||||
if msg:
|
||||
self.monitor.mark_message_send_failed(platform, msg)
|
||||
finally:
|
||||
self.monitor._sending_event.clear()
|
||||
# ⭐ 回复完成或失败后清除进行中标志
|
||||
|
||||
Reference in New Issue
Block a user