什么是 Hub
Hub 是一个托管在 GitHub 上的图片仓库,配合 koishi-plugin-hub-pusl 插件使用,可以实现:
- Push:在 QQ 群内发送命令 + 图片,Bot 自动上传图片到 Hub 仓库并创建 Pull Request
- Pull:在 QQ 群内发送命令,Bot 从 Hub 仓库随机拉取一张图片发送到群内
为什么需要 Hub
- 审核机制:图片通过 PR 提交,仓库管理员审核后才合入,确保内容合规
- 去重:同文件名的图片会被拒绝推送,避免重复
- 历史记录:所有图片的提交历史都在 GitHub 上可追溯
- 无重复拉取:Bot 按群记录已发送的图片,避免重复发送同一张图
工作流程
群友发送: nwtf-push 可爱小猫 [图片]
↓
Bot 下载图片
↓
检查上游仓库是否已存在同名文件 → 有则拒绝
↓
检查 Token 用户下是否有 Fork → 没有则自动 Fork
↓
同步 Fork 到上游最新
↓
在 Fork 上创建分支并上传图片
↓
从 Fork 向上游创建跨仓库 PR
↓
管理员审核 PR → 合入
↓
群友可通过 nwtf-pull 拉取到这张图片仓库结构
一个标准的 Hub 仓库结构如下:
your-hub-repo/
├── images/
│ ├── 可爱小猫.png
│ ├── 风景照.jpg
│ └── ...
└── README.md所有图片存放在 images/ 目录下,文件名即图片标题。