实现消息回复状态机制替代_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:
youpaishidifu
2026-09-02 12:34:35 +08:00
parent 52fae0c1e2
commit f43ab86308
2 changed files with 113 additions and 2 deletions
+6
View File
@@ -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()
# ⭐ 回复完成或失败后清除进行中标志