Skip to content

Repository files navigation

Phigros Rank Query

一个本地运行的 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 请求体大小上限,支持 bkbmb
rpm object 见下表 默认 RPM 配置。API Key 没有单独配置某项时会继承这里的 api.*

API Key 配置

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 配置

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

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages