fix(Task #1558补): OCR时间戳仅参考 - 含中文无新鲜时间戳放行交下游过滤,仅纯UI噪声丢弃

This commit is contained in:
youpaishidifu
2026-08-18 18:32:13 +08:00
parent 8aa3639cf3
commit 7587137b43
+12 -4
View File
@@ -3221,11 +3221,19 @@ class MessageMonitor:
return []
# —— 可见时间戳新鲜性检查 ——
# 若文本中有可见时间戳(HH:MM),但全部过期(>300s),视为历史消息直接丢弃
# 防止 OCR 混入旧消息内容误触发回复
if not raw_text or not self._ocr_text_has_fresh_timestamp(raw_text, platform):
logger.debug(f"[{platform}] OCR 历史消息(无可识别新鲜时间戳),丢弃: {raw_text[:80]!r}")
# ⭐ Task #1558 补充修复:OCR时间戳仅作参考,不再因时间戳过期整段丢弃。
# 时间戳可能被OCR继承/识别错误(旧消息13:32:36继承给新消息14:42:57),
# 历史消息去重交由下游关键词打分+DB查重负责。
# 仅当文本无中文字符(纯UI噪声/bot菜单)时才丢弃。
if not raw_text:
return []
if not self._ocr_text_has_fresh_timestamp(raw_text, platform):
if re.search(r'[\u4e00-\u9fff]', raw_text):
# 含中文 → 放行交下游过滤(关键词打分+DB查重+碎片过滤会拦截历史/噪声)
logger.debug(f"[{platform}] OCR 无新鲜时间戳但含中文,放行交下游过滤: {raw_text[:80]!r}")
else:
logger.debug(f"[{platform}] OCR 无新鲜时间戳且无中文(UI噪声),丢弃: {raw_text[:80]!r}")
return []
# —— 行切割 + 尾标清理 ——
ocr_lines = []