# MoWeChat — 莫荷微信 Bot

Linux 版微信 Bot，将莫荷的微信消息桥接到 Hermes Gateway。

## 技术方案

```
手机微信 → WeChat服务器 → Docker Bot → Webhook(:5804) → Hermes Gateway
                                                                          ↓
手机微信 ← WeChat服务器 ← Docker Bot ← Webhook(:5804) ← Hermes 回复
```

基于 [`docker-wechatbot-webhook`](https://github.com/danni-cool/wechatbot-webhook) (2174 star)，走 Web 微信协议。

## 快速开始

### 启动容器

```bash
docker run -d --name wxBotWebhook --restart unless-stopped \
  -p 3001:3001 \
  -v ~/wxBot_logs:/app/log \
  -e RECVD_MSG_API="http://172.17.0.1:5804/" \
  -e ACCEPT_RECVD_MSG_MYSELF=false \
  -e LOCAL_LOGIN_API_TOKEN="your_fixed_token" \
  dannicool/docker-wechatbot-webhook
```

### 扫码登录

访问 http://192.168.1.246:3001/login?token=your_fixed_token

### Webhook 接收器（systemd）

```bash
sudo systemctl start wechat-webhook
sudo systemctl enable wechat-webhook
```

### 发送消息

```bash
curl -X POST "http://localhost:3001/webhook/msg/v2?token=your_fixed_token" \
  -H "Content-Type: application/json" \
  -d '{"to": "联系人名称", "data": {"content": "消息内容"}}'
```

## 组件

| 组件 | 位置 | 说明 |
|------|------|------|
| Docker 容器 | `wxBotWebhook` | 微信 Bot 核心，收发消息 |
| Webhook 接收 | `wechat_webhook.py` | 收到消息→转发 Hermes→回复 |
| systemd 服务 | `wechat-webhook.service` | Webhook 开机自启 |
| 日志 | `~/wxBot_logs/` + `logs/webhook_service.log` | |

## 研究历程

见 [`docs/architecture.md`](docs/architecture.md)（方案论证）和 [`archive/`](archive/)（废弃脚本）。

曾尝试过的方案：
- GDB Hook（微信 4.1.7 crashpad 检测 ptrace，崩溃）
- /proc/PID/mem 内存扫描（可行但噪声大，需精调）
- LD_PRELOAD（需逆向工程）
- **最终：docker-wechatbot-webhook ✅ 最稳定**

## 维护

- Web 协议约 2 天掉线一次，需重新扫码
- 容器自动重启（`--restart unless-stopped`）
- 登录 URL 不变（固定 token）
