Note
该项目不会频繁更新!
| 模块 | 状态 | 说明 |
|---|---|---|
| Webhook 插件 | GitHub Webhook 事件接收与转发 | |
| ArxivRSS 插件 | arXiv 论文订阅与推送 | |
| 配置持久化 | JSON 文件存储配置 | |
| Docker 支持 | 容器化部署 |
- 🔗 GitHub 集成: 支持接收 GitHub Webhook 的 push、star、fork、issues、PR 等多种事件
- 🎯 动态配置: 通过指令动态添加/删除目标群组和订阅事件类型
- 💾 配置持久化: 所有配置保存到 JSON 文件,重启后自动加载
- 📊 统计功能: 实时统计请求数量和事件分布
- 🏥 健康检查: 提供 HTTP 端点查看服务器状态
- 🔌 插件化: 模块化设计,易于扩展新功能
- 🐳 容器化: 支持 Docker 和 Docker Compose 部署
- 📄 ArxivRSS: 附带 arXiv 论文订阅推送插件
push- 代码推送star- 仓库星标fork- 仓库分叉issues- Issue 创建/关闭/重开issue_comment- Issue 评论pull_request- PR 创建/关闭/合并release- 发布新版本create- 创建分支/标签delete- 删除分支/标签commit_comment- 提交评论ping- Webhook 测试
编辑 config.toml 文件,配置适配器和插件:
[bot]
plugin_dirs = ["plugins"]
adapters = ["iamai.adapter.cqhttp", "iamai.adapter.apscheduler"]
[adapter.cqhttp]
adapter_type = "ws-reverse"
host = "0.0.0.0"
port = 3001
url = "/cqhttp/ws"
[plugin.webhook]
host = "0.0.0.0"
port = 997
auto_start = truepython main.py从 ghcr.io 拉取并自动运行:
docker login ghcr.io
# 登录密码可以在 Github Settings 里生成一个自己的个人 PAT
docker run -ai ghcr.io/hydroroll-team/hydroroll-webhook使用 Docker Compose:
docker-compose up -d或使用 Docker:
docker build -t hydroroll-webhook .
docker run -d -p 3001:3001 -p 997:997 -v $(pwd)/data:/bot/data hydroroll-webhook/webhook on - 启动 Webhook 服务器
/webhook off - 停止 Webhook 服务器
/webhook status - 查看服务器状态
/webhook stats - 查看统计信息
/webhook help - 显示帮助信息
/webhook addgroup <群号> - 添加目标群组
/webhook delgroup <群号> - 删除目标群组
/webhook listgroups - 列出所有目标群组
/webhook addevent <事件类型> - 启用事件类型
/webhook delevent <事件类型> - 禁用事件类型
/webhook listevents - 列出已启用的事件
- 进入 GitHub 仓库的 Settings > Webhooks
- 点击 Add webhook
- 配置:
- Payload URL:
http://服务器IP:997/ - Content type:
application/json - Secret: 可选
- Events: 选择需要的事件类型
- Payload URL:
- 点击 Add webhook 保存
# 1. 添加目标群组
/webhook addgroup 123456789
# 2. 启动服务器
/webhook on
# 3. 管理事件订阅
/webhook addevent push
/webhook delevent fork
/webhook listevents
# 4. 查看状态
/webhook status
/webhook stats
/arxiv set <时> <分> - 设置订阅推送时间
/arxiv add <分类> - 添加订阅分类
/arxiv del <分类> - 删除订阅分类
/arxiv show - 显示当前订阅
/arxiv push [分类] - 立即推送
/arxiv kw add <关键词> - 添加关键词
/arxiv kw show - 显示关键词
/arxiv kw del <关键词> - 删除关键词
# 设置每天 13:00 推送
/arxiv set 13 00
# 订阅计算机科学分类
/arxiv add cs.CV cs.AI
# 添加关键词
/arxiv kw add transformer
# 立即推送
/arxiv push cs.CV
hydroroll-webhook/
├── main.py # 入口文件
├── config.toml # 配置文件
├── plugins/ # 插件目录
│ ├── webhook/ # Webhook 插件
│ │ └── __init__.py
│ └── arxivRSS/ # ArxivRSS 插件
│ └── __init__.py
├── data/ # 数据目录
│ └── webhook_config.json # 配置持久化文件
├── Dockerfile # Docker 镜像
├── docker-compose.yml # Docker Compose 配置
└── README.rst
Q: 如何修改 Webhook 监听端口?
A:在 config.toml 中修改 [plugin.webhook] 的 port 配置。
Q: 配置文件保存在哪里?
A:配置保存在 data/webhook_config.json,会自动创建。
Q: 如何调试 Webhook?
A: 使用 /webhook status 查看服务器状态并在 GitHub Webhook 页面查看推送记录, 最后访问 http://服务器IP:997/stats 查看统计信息
AGPLv3 © 2025-PRESENT HydroRoll-Team