修复: OCR 右裁剪边界 95%→78% 排除群成员侧栏 + 内容过滤二次防御
1. cap_right 从 win_w*0.95 收窄到 win_w*0.78,排除右栏群成员列表(~80%+ 区域) 防止群成员列表混入聊天消息 OCR 导致"新消息"乱码触发 bot 回复 2. 加 "群成员"/"索群成员"/"搜索成员" 行级内容过滤,裁剪残余的二次防御
This commit is contained in:
+6
-2
@@ -677,10 +677,10 @@ class MessageMonitor:
|
||||
time.sleep(0.3)
|
||||
# TIM 窗口布局: ~5-30% 左栏, ~30-50% 会话列表(含文档预览), ~50-100% 消息面板
|
||||
# 退回 c9acd7e 裁剪: 25% 覆盖消息面板两侧(对方+自己消息都可见)
|
||||
# md 过滤负责拦截 bot 的 md 格式回复,裁剪不用太紧
|
||||
# 右边界 78% 排除群成员侧栏(~80%+), md 过滤负责拦截 bot 的 md 格式回复
|
||||
cap_left = int(left + win_w * 0.25)
|
||||
cap_top = top + max(40, int(win_h * 0.04)) # 标题栏下方
|
||||
cap_right = int(left + win_w * 0.95) # 跳过滚动条
|
||||
cap_right = int(left + win_w * 0.78) # 跳过右栏群成员列表(~80%+) 和滚动条
|
||||
cap_bottom = bottom - max(100, int(win_h * 0.10)) # 输入框上方
|
||||
if cap_right <= cap_left or cap_bottom <= cap_top:
|
||||
return []
|
||||
@@ -786,6 +786,10 @@ class MessageMonitor:
|
||||
continue
|
||||
if self._is_system_message(line):
|
||||
continue
|
||||
# 群成员侧栏/搜索残留(QQ/TIM 右栏成员列表)
|
||||
if re.search(r'群成员|索群成员|搜索成员', line):
|
||||
logger.debug(f"[qq] OCR 过滤: 群成员侧栏 line={line[:60]!r}")
|
||||
continue
|
||||
# 纯中文短文本(1 字符)— UI 噪声碎片
|
||||
if re.match(r'^[一-鿿]{1}$', line):
|
||||
continue
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 278 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
Reference in New Issue
Block a user