将固定的 /api/* 路径映射到 GitHub 仓库中的数据文件,
并通过 Cloudflare Worker 提供 CDN 缓存和 CORS 支持。
- /api/cnsongs
- /api/fumendb_constants
- /api/gugu_constants
- /api/previews
- /api/preview/${id}
- /api/preview/${id}/${filename}
此路由读取 taiko-song-database-cn 仓库的 songs.sqlite3,返回按 id
升序排列的 JSON 数组,包含当前歌曲和历史中已删除的歌曲。
- 从数据库的
source_json恢复原有歌曲字段,包括可选字段及其原始值。 types使用数据库中合并后的分类数组,补全早期重复分类记录。- 每首歌曲额外返回布尔字段
is_deleted:true表示当前曲库中已不存在,false表示仍然存在;歌曲重新上架、数据库更新且缓存刷新后会返回false。 - 不返回
source_json、last_seen_commit等内部归档字段。 - 支持
GET、HEAD和OPTIONS,保留 CORS 和一小时缓存。 - 按
FILE_MAP中的顺序尝试 SQLite 来源;下载失败或文件无效时切换备用源。 所有来源均失败时返回不缓存的502JSON 错误。
Worker 使用随代码打包的 sql.js WebAssembly 读取远端 SQLite,无需 D1 或其他
数据库服务。wrangler.toml 中的 self.location.href 构建替换用于适配 sql.js
对浏览器 Worker 环境的检测,Wasm 模块不会在运行时从远端加载。
npm ci
npm test
npx wrangler deploy --dry-run测试在本地 Worker 运行时中读取真实 SQLite 格式的测试数据,覆盖原始字段、 删除和重新上架、备用源、错误响应、缓存、HEAD/CORS 以及其他 JSON 路由。
npm install
wrangler login
npm run deploy