一个本地运行的 Phigros 查分页面。前端使用 HTML/CSS/JavaScript 绘制默认 P3+B27+12 溢出成绩图,后端使用 Node.js 请求云存档、解密并解析成绩数据。
npm install
npm run dev打开 http://localhost:3000,输入 Phigros 的 sessionToken 后生成成绩图。
data/phigros保存运行所需的曲目信息与定数数据。- 存档解析逻辑参考 PhigrosLibrary 与 PhigrosAPILib。
- 扫码登录入口接入 TapTap device code 流程,若接口变更需要调整。
运行配置统一写在项目根目录的 config.json。配置示例见 config.example.json。
{
"apiKeys": [
{
"name": "normal",
"key": "change-me",
"rpm": {
"api.session": 60,
"api.image": 10,
"api.qr.start": 20,
"api.qr.status": 300
}
},
{
"name": "vip",
"key": "change-me-vip",
"rpm": {
"api.session": 300,
"api.image": 50,
"api.qr.start": 60,
"api.qr.status": 600
}
}
],
"apiKeyHeader": "api-key",
"bodyLimit": "32kb",
"rpm": {
"api.session": 60,
"api.image": 10,
"api.qr.start": 20,
"api.qr.status": 300,
"web.session": 60,
"web.qr.start": 20,
"web.qr.status": 300
}
}| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
apiKeys |
array | [] |
对外 API Key 列表。为空时 /api/* 返回 apiKeys 未配置 |
apiKeyHeader |
string | api-key |
API Key 请求头名称。当前只认这个请求头,不兼容 X-API-Key 或 Bearer |
bodyLimit |
string | 32kb |
JSON 请求体大小上限,支持 b、kb、mb |
rpm |
object | 见下表 | 默认 RPM 配置。API Key 没有单独配置某项时会继承这里的 api.* 值 |
apiKeys 中每一项代表一个可用的 API Key。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name |
string | 否 | 备注名,只方便后台识别,不参与鉴权 |
key |
string | 是 | 实际 API Key。调用 API 时放在 api-key 请求头里 |
rpm |
object | 否 | 这个 key 自己的 API RPM。没写的接口会继承顶层 rpm |
例如普通用户和 VIP 用户可以配置不同额度:
{
"name": "vip",
"key": "vip-key",
"rpm": {
"api.session": 300,
"api.image": 50,
"api.qr.start": 60,
"api.qr.status": 600
}
}RPM 表示每分钟允许请求次数。
| 键 | 作用范围 | 默认值 | 对应接口 |
|---|---|---|---|
api.session |
每个 API Key 单独计算 | 60 |
POST /api/session |
api.image |
每个 API Key 单独计算 | 10 |
GET/POST /api/image |
api.qr.start |
每个 API Key 单独计算 | 20 |
POST /api/qr/start |
api.qr.status |
每个 API Key 单独计算 | 300 |
GET /api/qr/{requestId}/status |
web.session |
网页端全局总量 | 60 |
POST /web/session |
web.qr.start |
网页端全局总量 | 20 |
POST /web/qr/start |
web.qr.status |
网页端全局总量 | 300 |
GET /web/qr/{requestId}/status |
api.* 可以在顶层 rpm 设置默认值,也可以在 apiKeys[].rpm 中为某个 key 单独覆盖。
web.* 是网页端匿名接口的全局总频率,不按 API Key 区分。
API 调用、请求体和响应格式见 API.md。