# TG转发器运维

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

## 转发规则
- 源: 实盘监控 (chat_id=3805472665)
- 目标: 交易信号群 (chat_id=-1003966251111)
- 模式: WHITELIST
- 白名单关键词: `.*` (匹配所有，不过滤)

## 修改关键词过滤
```bash
# 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=黑名单(拦截) |

## 日志查看
```bash
# 最近日志
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）。

## 重启
```bash
docker restart telegram-forwarder
```
重启后约5秒恢复，会自动重新连接Telegram。

## 常见问题
- **信号不转发**: 检查白名单关键词是否匹配，`docker logs` 看"未匹配到普通白名单关键词"
- **bot消息被忽略**: 正常，bot自己发的消息不处理（`过滤器识别到机器人消息，忽略处理`）
- **容器内无sqlite3**: 用 `docker cp` 导出到宿主机操作
