1.9 KiB
1.9 KiB
TG Forwarder 硬编码黑名单误杀 USDT 信号 (2026-09-22 实战)
事故
用户反映"监听频道要更新" → 排查发现 forwarder 一直在跑, 但日志显示:
[用户] 消息命中硬编码黑名单, 跳过转发
最终决定: 不转发
根因: /app/handlers/user_handler.py 的 HARD_BLACKLIST_PATTERNS 含
r'(?i)usdt|cny|套现' 和裸 带单|指导|喊单|牛牛老师、\bVIP\b|\b老师\b。
而所有信号格式都带 USDT(【币种】:BTCUSDT 永续), 每条都命中 → 信号时有时无。
修复 (收窄正则)
# 修复前 (误杀)
r'(?i)usdt|cny|套现',
r'(?i)带单|指导|喊单|牛牛老师',
r'(?i)\bVIP\b|\b老师\b',
# 修复后
r'(?i)(usdt|cny)(?!永续|usdt).{0,4}套现|套现', # 只拦"套现"
r'(?i)牛牛老师|喊单指导', # 去掉裸 带单/指导/喊单
r'(?i)\bVIP群\b|付费指导', # 收窄
改完必须 docker restart telegram-forwarder。
两个频道区分 (重要, 易混)
| 频道 | chat_id | 标题 | 监听状态 |
|---|---|---|---|
| @shipan_jiankong | 2651333064 | 币圈实盘监控 | 熬鹰 风寻 (新) | ❌ 未监听 |
| @jiankongshipan | 3805472665 | 实盘监控 (旧) | ✅ 当前监听, 信号来源 |
forward_rules: source=chats.id 1(=3805472665) → target=chats.id 2(=-1003966251111 交易信号群)。
双白名单 AND 校验 (v4.5.4, 未动)
消息必须同时含交易员关键词(麻吉/魏神/熬鹰/风寻/狙击手/百发百胜) + 信号类型(开仓/平仓/加仓/减仓)才转发。
排查手法
- 规则库: 容器内
python3+ sqlite3 读/app/db/forward.db(chats/forward_rules/keywords 表) - session 被主进程锁 →
cp /app/sessions/user.session /tmp/xx.session再连 - 容器内连 TG 必带
proxy=('socks5','127.0.0.1',7891),request_retries=1+ timeout 防挂 - 容器内无 sqlite3 CLI, 用 python sqlite3 模块