diff --git a/monitor.py b/monitor.py index 83b5659..1557d86 100644 --- a/monitor.py +++ b/monitor.py @@ -10565,10 +10565,12 @@ class MessageMonitor: score = max(score + 5.0, 5.0) logger.info(f"[{platform}] 时间戳新鲜度≥5直接放行(+5): {old_score:.1f}→{score:.1f}: {item[:50]}") elif freshness_score == -999.0: - # ⭐ Task #1661: 无有效时间戳(OCR丢失或解析失败) - # 不补分、直接扣分为负,避免旧消息因"DB无记录"误获补分 - score -= 10.0 - logger.info(f"[{platform}] 无有效时间戳(OCR丢失?)扣10分: {score:.1f}: {item[:50]}") + # ⭐ Task #1661+#1665: 无有效时间戳(整批OCR丢失时间戳) + # 完全无法判断消息年龄,直接强制丢弃 + # 注意:短消息(+5)+疑问词(+10)可得15分,仅扣10分仍为5分>0 + # 会导致无时间戳的旧消息被误处理,所以改为强制设为极低分 + score = -100.0 + logger.info(f"[{platform}] 无有效时间戳(OCR丢失?)强制丢弃: {item[:50]}") elif freshness_score < 0: # 负分(超过1小时):扣10分 score += freshness_score # 加上负分 = 扣分