132 lines
3.2 KiB
Markdown
132 lines
3.2 KiB
Markdown
# WechatHookBot
|
||
|
||
基于个微大客户版 Hook API 的微信机器人框架,参考 XYBotV2 架构设计。
|
||
|
||
## 项目特点
|
||
|
||
- 🎯 **无需登录**:Hook 已登录的微信客户端,无需二维码登录
|
||
- 🔌 **插件化**:兼容 XYBotV2 风格插件系统
|
||
- ⚡ **实时回调**:HTTP 回调机制,消息接收更及时
|
||
- 🚦 **消息队列**:支持优先级队列、并发控制、熔断与优雅关闭
|
||
- 🔄 **热更新**:主配置可热更新,运行中可调整队列和并发参数
|
||
- 🧠 **消息细分**:支持文本、图片、语音、视频、文件、引用、链接、小程序、名片等消息类型
|
||
- 🖥️ **可选 WebUI**:支持开启轻量管理界面
|
||
|
||
## 技术栈
|
||
|
||
- Python 3.x
|
||
- asyncio 异步编程
|
||
- aiohttp + httpx
|
||
- SQLite 数据库
|
||
- APScheduler 定时任务
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- Windows 系统
|
||
- Python 3.x
|
||
- 微信客户端已登录
|
||
|
||
### 安装
|
||
|
||
```bash
|
||
cd WechatHookBot
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
如使用 Playwright 相关插件,首次安装后还需要执行:
|
||
|
||
```bash
|
||
playwright install
|
||
```
|
||
|
||
### 配置
|
||
|
||
编辑 `main_config.toml` 配置文件:
|
||
|
||
```toml
|
||
[HttpHook]
|
||
api-url = "http://127.0.0.1:19088"
|
||
callback-host = "0.0.0.0"
|
||
callback-port = 5000
|
||
|
||
[Bot]
|
||
admins = ["your_wxid"]
|
||
disabled-plugins = []
|
||
```
|
||
|
||
插件自己的配置位于 `plugins/<PluginName>/config.toml`。
|
||
|
||
例如 `MessageLogger` 需要单独配置 MySQL / MinIO:
|
||
|
||
```toml
|
||
[minio]
|
||
enabled = true
|
||
endpoint = "127.0.0.1:9000"
|
||
access_key = "your_access_key"
|
||
secret_key = "your_secret_key"
|
||
bucket = "wechat"
|
||
secure = false
|
||
public_base_url = "http://127.0.0.1:9000"
|
||
```
|
||
|
||
也可以通过环境变量覆盖:
|
||
|
||
- `MESSAGE_LOGGER_MINIO_ENDPOINT`
|
||
- `MESSAGE_LOGGER_MINIO_ACCESS_KEY`
|
||
- `MESSAGE_LOGGER_MINIO_SECRET_KEY`
|
||
- `MESSAGE_LOGGER_MINIO_BUCKET`
|
||
- `MESSAGE_LOGGER_MINIO_PUBLIC_BASE_URL`
|
||
|
||
### 运行
|
||
|
||
```bash
|
||
# 启动机器人
|
||
python bot.py
|
||
```
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
WechatHookBot/
|
||
├── docs/ # 文档目录
|
||
│ ├── 封装接口清单.md
|
||
│ └── 内部接口清单.md
|
||
├── WechatHook/ # Hook 层
|
||
├── utils/ # 工具类
|
||
├── database/ # 数据库
|
||
├── plugins/ # 插件目录
|
||
├── bot.py # 主入口
|
||
├── FEATURES.md # 功能与指令说明
|
||
└── main_config.toml # 主配置
|
||
```
|
||
|
||
## 文档
|
||
|
||
- [功能与指令](FEATURES.md) - 插件功能、指令、配置说明
|
||
- [封装接口清单](docs/封装接口清单.md) - `WechatHookClient` 对外接口
|
||
- [内部接口清单](docs/内部接口清单.md) - `HttpClient` 内部接口
|
||
|
||
## 注意事项
|
||
|
||
⚠️ **重要提示**
|
||
|
||
- 需要微信客户端在运行
|
||
- 需要正确配置 Hook 的 HTTP 回调地址与端口
|
||
- 当前项目仅保留 `bot.py` 启动方式,不包含额外管理界面入口
|
||
- Hook 方式风控风险较高,谨慎使用
|
||
- 运行产生的缓存、日志、数据库、临时图片/视频默认不建议提交到 Git
|
||
|
||
## 免责声明
|
||
|
||
本项目仅供学习和技术研究使用,不得用于任何商业或非法行为。使用本工具造成的任何后果由使用者自行承担。
|
||
|
||
## 开发状态
|
||
|
||
🚧 项目开发中...
|
||
|
||
## License
|
||
|
||
MIT License
|