Files
Hermes-Skills/okx-auto-position/references/tg-forwarder-ops.md
T

4.0 KiB
Raw Blame History

name, description, version
name description version
tg-forwarder-ops TG转发器运维参考 - 2026-09-21 真相: filter_chain 是空链 (死代码), 转发走 handlers/user_handler.py:forward_messages() + 附加 send_message。覆盖挂载配置、SOCKS5端口(7890≠7891)、硬编码黑名单、已废弃做法 1.1.0

TG转发器运维

⚠️ 关键真相 (2026-09-21): /app/filters/ 下的所有 filter (InfoFilter / KeywordFilter / SenderFilter) 是死代码 — filter_chain 是空链 (0 filter), 没人调用。实际转发流程走 handlers/user_handler.py:process_forward_rule()。要改转发行为只能改 user_handler.py。

详见 tg-forwarder-ops-2026-09-21.md — 容器挂载配置 / SOCKS5 端口坑 (7890 vs 7891) / 时间戳方案 (send_message after forward_messages) / 硬编码黑名单 / 已废弃做法清单。

基本信息

  • 容器名: telegramforwarder-telegram-forwarder (短名: telegram-forwarder)
  • Bot: @mikes_MsgForwarder_bot
  • 用户客户端: @mikes669
  • 数据库: /app/db/forward.db (SQLite)
  • 环境变量: /app/.env

转发规则 (2026-09-24 已切换)

  • 源: 币圈实盘监控 | 熬鹰 风寻 (chat_id=-1002651333064, chats.id=4) ← 新频道
  • 旧源: 实盘监控 (chat_id=3805472665, chats.id=1) — 已停用, 记录保留
  • 目标: 交易信号群 (chat_id=-1003966251111)
  • 模式: WHITELIST_THEN_BLACKLIST
  • 白名单关键词: 交易员关键词 (麻吉/魏神/熬鹰/风寻/狙击手/百发百胜) AND 信号类型 (开仓/平仓/加仓/减仓) 双匹配
  • 硬编码黑名单: 已修复 USDT 误杀 (2026-09-22 实战)

修改关键词过滤

# 1. 导出数据库
docker cp telegram-forwarder:/app/db/forward.db /tmp/forward.db

# 2. 查看当前关键词
sqlite3 /tmp/forward.db "SELECT * FROM keywords;"

# 3. 修改(示例:删除旧的,添加新的)
sqlite3 /tmp/forward.db "DELETE FROM keywords WHERE id=8;"
sqlite3 /tmp/forward.db "INSERT INTO keywords (rule_id, keyword, is_regex, is_blacklist) VALUES (1, '.*', 1, 0);"

# 4. 导回并重启
docker cp /tmp/forward.db telegram-forwarder:/app/db/forward.db
docker restart telegram-forwarder

keywords表字段

字段 说明
rule_id 关联的转发规则ID
keyword 关键词或正则表达式
is_regex 0=普通文本, 1=正则
is_blacklist 0=白名单(放行), 1=黑名单(拦截)

日志查看

# 最近日志
docker logs telegram-forwarder --tail 50

# 过滤信号相关
docker logs telegram-forwarder --since 1h 2>&1 | grep -E "转发|匹配|白名单|不转发|过滤"

# 查看是否收到消息
docker logs telegram-forwarder --since 1h 2>&1 | grep "处理转发规则"

Bot命令(通过Telegram发给bot)

  • /lk 或 /list_keyword — 查看关键词列表
  • /a 或 /add — 添加关键词
  • /ar 或 /add_regex — 添加正则关键词
  • /rk 或 /remove_keyword — 删除关键词
  • /sw 或 /switch — 切换模式

⚠️ bot命令需要通过Telegram客户端发送,不能从agent内直接调(gateway占用getUpdates)。

重启

docker restart telegram-forwarder

重启后约5秒恢复,会自动重新连接Telegram。

常见问题

  • 信号不转发:
    1. 检查白名单关键词是否匹配,docker logs 看"未匹配到普通白名单关键词"
    2. 新频道切换后无消息日志: 检查 message_listener.py 是否用 event.chat_id 而不是 abs(chat.id) (TG channel id 必带 -100 前缀)
    3. 黑名单误杀: 检查 HARD_BLACKLIST_PATTERNS 是否包含裸 usdt|cny|套现(信号都带 USDT)
  • bot消息被忽略: 正常,bot自己发的消息不处理(过滤器识别到机器人消息,忽略处理)
  • 容器内无sqlite3: 用 docker cp 导出到宿主机操作
  • session 被主进程锁: cp /app/sessions/user.session /tmp/xx.session 再连
  • telethon 连不上: 容器内必带 proxy=('socks5','127.0.0.1',7891), request_retries=1
  • 修改后无生效: 任何代码/SQL改动必须 docker restart telegram-forwarder