用于 Bangumi Wiki 的脚本合集。依赖官方 Archive 数据。
基于 DuckDB 的命令行/Web 筛选工具,支持 YAML 配置、交互模式、Web 界面。
- YAML 配置定义筛选条件(类型、字段、关系、人物、标签等)
- 输出 CSV / JSON / 终端表格
- 内嵌 Web UI,支持可视化筛选和 CSV 导出
- 支持 Linux、macOS、Windows,也可 Docker 部署
📖 bgq 详细文档
Tampermonkey 用户脚本,在 next.bgm.tv 上批量审核编辑条目/角色/人物的 Wiki 信息。
- 通过 CSV 文件批量更新 Infobox、标签、系列状态
- 提交前 diff 预览,断点续传,重复检测
- 支持 Private API 和旧版表单两种提交方式
bgq 输出的 CSV 可直接作为 wikiBatch 的输入:
# 1. 用 bgq 筛选目标条目,输出 CSV(必须含 id 列)
./bgq/bin/bgq query --config query.yaml --format csv --output results.csv
# 2. 在 next.bgm.tv 打开 wikiBatch,上传 results.csv 批量编辑CSV 中的 id 列对应条目 ID,其他列名对应要更新的字段(如 infobox、tags、series)。
| 脚本 | 说明 |
|---|---|
| find_duplicate_isbns.py | 查找重复 ISBN 的条目(限 9784 开头的日本出版物) |
| person_alias.py | 生成人物别名 JSON 数据 |
| check_volume_order.py | 检查单行本卷序一致性 |
- 数据更新(每周二自动运行)→
data-latestRelease:重复 ISBN 检查、人物别名、筛选结果 - 二进制构建(bgq 代码变更时触发)→
latestRelease:跨平台压缩包
CI 使用 bgq 执行 filters/*.yaml 中的查询,结果以 CSV 上传到 data-latest Release:
- 小说系列关联漫画单行本
- 漫画系列关联小说单行本
- 标题有序号而标记为系列
- 非系列关联单行本
- 写了ISBN的系列
- 连载结束无已完结标签
- 有序号的单行本未关联系列
- 小说缺小说标签
- 漫画缺漫画标签
- 未填写作者
输出的 CSV 含 id 列,可直接上传到 wikiBatch 批量审核编辑。
本地批量生成所有结果:
mkdir -p results
for f in filters/*.yaml; do
name=$(basename "$f" .yaml)
./bgq/bin/bgq query --config "$f" --data-dir bangumi_archive --format csv --output "results/${name}.csv"
donesync_index.py 可将 bgq 筛选结果同步到 Bangumi 目录,支持 subject/person/character/episode 四种类型。使用 next.bgm.tv 私有 API。
# 管道模式(类型自动从 CSV 列名推断:person_id→person, character_id→character, id→subject)
export BANGUMI_TOKEN=your_token
./bgq/bin/bgq query --config index_filters/example.yaml --data-dir bangumi_archive --format csv \
| python sync_index.py --index 12345
# 文件模式
python sync_index.py --index 12345 --csv results/some-filter.csv
# 预览(不执行)
python sync_index.py --index 12345 --csv results/some-filter.csv --dry-run描述规则:
- 存在
index_desc列 → 用其值作为条目描述 - 否则 → 非 ID 列以
列名:值拼接(排除id和*_id列) - 行序即目录排序
目录过滤器:index_filters/ 目录下的 YAML 需包含 target_index 和 target 字段。CI 中设置 BANGUMI_TOKEN secret 即可自动同步。
批量同步所有目录(或用于 cron):
BANGUMI_TOKEN=xxx ./sync_indices.sh --data-dir bangumi_archive --bgq bgq/bin/bgq尚无法用 bgq 自动检查的项目:
- 过于便宜/昂贵的书籍(价格币种格式不统一)
- 发售日比连载开始还早(需跨字段比较,当前仅支持字段与常量比较)
