<div align="center">
  <h1>
    <picture>
      <source srcset="https://github.com/user-attachments/assets/c18cd28c-220e-445d-9001-3f7a8f25ac51" type="image/avif" width="80%" />
      <img src="https://github.com/Catrong/phi-plugin/assets/117198625/731e11cb-71d3-4575-8c0d-b9cedcd442d4" width="80%" />
    </picture>
  
### 中文 | [English](./README_en.md)
  </h1>

[![Guild](https://img.shields.io/badge/频道-Hutao114Pgr939-9cf?style=flat-square&logo=GroupMe)](https://pd.qq.com/s/e3z86q6bw)
[![Guild](https://img.shields.io/badge/频道-RkBwFBaRqa-9cf?style=flat-square&logo=Discord)](https://discord.gg/invite/RkBwFBaRqa)
[![Bilibili](https://img.shields.io/badge/Bilibili-就是不会告诉你-A4CAFA?style=flat-square&logo=bilibili&logoColor=white&labelColor=ff69b4)](https://space.bilibili.com/403342249)
[![Stars](https://img.shields.io/github/stars/Catrong/phi-plugin?style=flat-square&color=yellow&label=Star)](../../stargazers)

![version](https://img.shields.io/badge/插件版本-1.0.1-9cf?style=flat-square)
![version](https://img.shields.io/badge/Phigros-3.19.0-9cf?style=flat-square)
![version](https://img.shields.io/badge/PhigrosVer-143-9cf?style=flat-square)
[![YunzaiBot](https://img.shields.io/badge/Yunzai-v3.0-9cf?style=flat-square&logo=dependabot)](../../yoimiya-kokomi/Yunzai-Bot)
[![MiaoYunzai](https://img.shields.io/badge/Miao--Yunzai-v3.0-9cf?style=flat-square&logo=dependabot)](../../yoimiya-kokomi/Miao-Yunzai)
[![TrssYunzai](https://img.shields.io/badge/TRSS--Yunzai-v3.0-9cf?style=flat-square&logo=dependabot)](../../TimeRainStarSky/Yunzai)
</div>

### 介绍

`phi-plugin` 为查询Phigros信息的插件，包括b30、score、userinfo以及更多Phigros相关功能，有相关的建议和问题可以在[Issues](../../issues)中提出，欢迎[PR](../../pulls)。

具体功能可在安装插件后 通过 `/phihelp` 查看详细指令

---
<!--

### 贡献者

感谢以下贡献者对本项目做出的贡献

<table>
    <tr>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/Walkersifolia"><img src="https://avatars.githubusercontent.com/u/129571444?v=4?s=100" style="border-radius: 50%" width="50px;" alt="圈圈"/><br /><sub><b>@Walkersifolia</b></sub></a><br /><a href="https://github.com/Catrong/phi-plugin/graphs/contributors/commits?author=Walkersifolia" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/KeluIsAfkeru"><img src="https://avatars.githubusercontent.com/u/107661829?v=4?s=100" style="border-radius: 50%" width="50px;" alt="屑克鲁"/><br /><sub><b>@KeluIsAfkeru</b></sub></a><br /><a href="https://github.com/Catrong/phi-plugin/graphs/contributors/commits?author=KeluIsAfkeru" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/S-t-e-v-e-e"><img src="https://avatars.githubusercontent.com/u/117198625?v=4?s=100" style="border-radius: 50%" width="50px;" alt="史蒂夫"/><br /><sub><b>@Steve~ɘvɘɈƧ</b></sub></a><br /><a href="https://github.com/Catrong/phi-plugin/graphs/contributors/commits?author=S-t-e-v-e-e" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/7aGiven"><img src="https://avatars.githubusercontent.com/u/77519196?v=4?s=100" style="border-radius: 50%" width="50px;" alt="文酱"/><br /><sub><b>@7aGiven</b></sub></a><br /><a href="https://github.com/Catrong/phi-plugin/graphs/contributors/commits?author=7aGiven" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/MYS-KISO"><img src="https://avatars.githubusercontent.com/u/101465504?v=4?s=100" style="border-radius: 50%" width="50px;" alt="MoistCrystal"/><br /><sub><b>@MoistCrystal</b></sub></a><br /><a href="https://github.com/Catrong/phi-plugin/graphs/contributors/commits?author=MYS-KISO" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="10%" nowrap="nowrap"><a href="https://github.com/yt6983138"><img src="https://avatars.githubusercontent.com/u/83499886?v=4?s=100" style="border-radius: 50%" width="50px;" alt="yt6983138"/><br /><sub><b>@static_void</b></sub></a><br /><a href="https://github.com/yt6983138" title="Contributor">🌸</a></td>
        <td align="center" valign="top" width="15%" nowrap="nowrap"><a href="https://github.com/wms26"><img src="https://avatars.githubusercontent.com/u/50258919?v=4?s=100" style="border-radius: 50%" width="50px;" alt="wms26"/><br /><sub><b>@千柒</b></sub></a><br /><a href="https://github.com/wms26" title="Contributor">🌸</a></td>
    </tr>
</table>
-->

### 安装：

在Yunzai目录下运行

> 使用Github

```
#安装插件本体
git clone --depth=1 https://github.com/Catrong/phi-plugin.git ./plugins/phi-plugin/ 
#进入插件目录
cd ./plugins/phi-plugin/ 
#安装插件所需依赖
pnpm install -P
```

> 使用Gitee

```
#安装插件本体
git clone --depth=1 https://gitee.com/catrong/phi-plugin.git ./plugins/phi-plugin/
#进入插件目录
cd ./plugins/phi-plugin/
#安装插件所需依赖
pnpm install -P 
```

> [!WARNING]
> 请使用主人权限执行该指令以下载曲绘，否则相关曲绘将无法正常展示！（可以是标准输入或者其他平台）
> 
>```
> /phi downill
>```

> [!TIP]
> 如果安装依赖时速度过慢，运行：
> 
>```
> pnpm config set registry https://registry.npmmirror.com
>```

---

#### Todo

* [ ] 优化界面设计

* [ ] 加入收集品、头像等的图鉴

* [ ] 点phi的歌

* [ ] 优化扫码获取sessionToken

* [ ] 指令修改部分设置

* [ ] 曲目历史定数查询

* [ ] 谱面标签

* [ ] 适配TapTap国际版

* [ ] ……
---

### 功能

以下#均可用/代替，命令头可自定义

#### **以下为用户功能**

| **功能名称** | **功能说明**
| :- | :-
| `#phi帮助` | 获取帮助
| `#phi (cn\|gb)?(bind\|绑定)xxx` | 绑定sessionToken，支持国服/国际服，默认为国服
| `#phi (unbind\|解绑)` | 删除sessionToken和存档记录
| `#phi clean` | 删除所有记录
| `#phi (update\|更新存档)` | 更新存档
| `#phi (rks\|pgr\|b30)` | 查询rks，会提供得出的b30结果
| `#phi x30` | 查询1Good b30
| `#phi fc30` | 查询Full Combo b30
| `杠批比三零` | 同上
| `#phi info(1\|2)?` | 查询个人统计信息
| `#phi lmtacc [0-100]` | 计算限制最低 ACC 后的 RKS
| `#phi (lvsco(re)\|scolv) <定数范围> <难度>` | 获取区间成绩
| `#phi chap <章节名称\|help>` | 获取章节成绩
| `#phi ahv <定数>[-v 版本]` | 获取定数成绩表
| `#phi list <-dif 定数范围> <-acc ACC范围> <EZ\|HD\|IN\|AT> <NEW\|C\|B\|A\|S\|V\|FC\|PHI>` | 获取区间每首曲目的成绩
| `#phi hisb30` | 根据历史记录计算B30变化情况
| `#phi best1(+)` | 查询文字版b30（或更多），最高b99
| `#phi (score\|单曲成绩)xxx  [-dif 难度] [-or acc\|score\|fc\|time] [-unrank]` | 获取单曲成绩及这首歌的推分建议，参数为对分数排行的参数，目前仅开启API后有效
| `#phi (suggest\|推分)` | 获取可以让RKS+0.01的曲目及其所需ACC
| `#phi (ranklist\|排行榜) [名次]` | 获取 RKS 排行榜
| `#phi rankfind <rks>` | 获取有多少人大于查询 RKS
| `#phi data` | 获取用户data数量
| `#phi (guess\|猜曲绘)` | 猜曲绘，回答无特殊命令，直接回复，如果不是曲名就不会说话，如果是不正确的曲名会回复。#ans 结束
| `#phi (ltr\|开字母)` | 根据字母猜曲名，#出/#open... 开指定的字母，#第n个/#nX.xxx 进行回答，#ans 获取答案
| `#phi (tipgame\|提示猜曲)` | 根据提示猜曲名，#tip获得下一条提示，#ans 获取答案，回答直接回复
| `#phi (song\|曲) xxx` | 查询phigros中某一曲目的图鉴，支持设定别名
| `#phi chart <曲名> [难度=IN]` | 查询phigros中某一谱面的详细信息
| `#phi tag <曲名> [难度=IN] <标签>` | 查看谱面标签，标签可选项见回复说明，难度默认为IN
| `#phi settag <曲名> [难度=IN] <标签>` | 给谱面打标签，推荐先使用/tag查询标签列表，难度默认为IN
| `#phi (comment\|cmt\|评论\|评价) <曲名> [难度=IN](换行)<内容>` | 评论曲目，难度默认为IN
| `#phi recmt <评论ID>` | 查看并确认是否删评，仅发送者和主人权限，需要二次确认
| `#phi mycmt` | 查看自己的云端评论
| `#phi (table\|定数表) <定数>` | 查询phigros定数表
| `#phi new` | 查询更新的曲目
| `#phi tips` | 随机tips
| `#phi jrrp` | 今日人品
| `#phi alias xxx` | 查询某一曲目的别名
| `#phi (rand\|随机) [定数] [难度]` | 根据条件随机曲目，条件支持难度、定数，难度可以多选，定数以-作为分隔
| `#phi randclg [课题总值] [难度] ([曲目定数范围])` | 随机课题 eg: /rand 40 (IN 13-15)
| `#phi (曲绘\|ill\|Ill) xxx` | 查询phigros中某一曲目的曲绘
| `#phi (search\|查询\|检索) <条件 值>` | 检索曲库中的曲目，支持BPM 定数 物量，条件 bpm dif cmb，值可以为区间，以 - 间隔
| `#phi (theme\|主题) [0-2]` | 切换绘图主题，仅对 b30, update, randclg, sign, task 生效
| `#phi (myset\|个人设置)` | 查看和修改用户设置，参数为设置项名称，值支持使用序号选择，建议先查看设置项列表
| `sign/签到` | 签到获取Notes
| `task/我的任务` | 查看自己的任务
| `retask/刷新任务` | 刷新任务，需要花费20Notes
| `#phi (send\|送\|转) <目标> <数量>` | 送给目标Note，支持@或QQ号

#### **以下为管理功能**

| 功能名称 | 功能说明
| :- | :-
| `#phi backup (back)?` | 备份存档文件，+ back 发送该备份文件，自动保存在 /phi-plugin/backup/ 目录下
| `#phi restore` | 从备份中还原，不会丢失已有数据，需要将文件放在 /phi-plugin/backup/ 目录下
| `#phi(设置别名\|setnick) xxx ---> xxx` | 设置某一歌曲的别名，格式为 原名(或已有别名) ---> 别名（会自动过滤--->两边的空格）
| `#phi(删除别名\|delnick) xxx` | 删除某一歌曲的别名
| `#phi(强制\|qz)?(更新\|gx)` | 更新本插件
| `#phi repu` | 重启puppeteer
| `#下载曲绘\|down ill` | 下载曲绘到本地
| `#phi get <名次>` | 获取排行榜上某一名次的sessionToken
| `#phi del <sessionToken>` | 禁用某一sessionToken
| `#phi allow <sessionToken>` | 恢复某一sessionToken
| `#phi (set\|设置)<功能><值>` | 修改设置，建议先/phi set查看功能名称，没有空格
| `#phi ban <功能>` | 禁用某一类功能，详见 [功能参数说明](#phi-ban-%E5%8A%9F%E8%83%BD%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E)

<details open>  
<summary>功能参数说明</summary>

#### `#phi ban` 功能参数说明

| 参数 | 功能 | 影响指令
| :- | :- | :-
| 全部 | 全部功能 | 所有
| help | 帮助功能 | /help /tkhelp /myset
| bind | 绑定功能 | /bind /unbind
| b19 | 图片查分功能 | /pgr /update /info /list /pb30 /p30 /lmtacc /score /lvsco /chap /suggest
| wb19 | 文字查分功能 | /data /best
| song | 图鉴功能 | /song /chart /ill /search /alias /rand /randclg /table /cmt /recmt /addtag /subtag /retag
| ranklist | 排行榜功能，不会禁用用户排名 | /ranklist /godlist
| fnc | 小功能 | /com /tips /new
| tipgame | tip猜歌 | /tipgame
| guessgame | 猜歌 | /guess
| ltrgame | 猜字母 | /letter /ltr
| sign | 娱乐功能 | /sign /send /task /retask /jrrp
| setting | 系统设置 | /theme
| dan | 段位认证相关 | /dan /danupdate
</details>

## API功能正式开启测试

可在设置项手动设置打开与关闭，开启后，将自动同步用户在Phi-Plugin系列应用（网页、云崽，暂不含koishi）使用记录与历史成绩到API端，且部分功能需要开启API后才能使用

| 功能名称 | 功能说明
| :- | :-
| `#phi (bind\|绑定) <userId>` | 开启查分API可用，绑定API账号
| `#phi setApiToken <token>` | 设置API Token
| `#phi tokenList` | 获取当前绑定的平台列表
| `#phi tokenManage (delete) <平台序号> (-f)?` | 删除绑定的平台，-f 跳过确认
| `#phi auth <api Token>` | 通过API Token 获取 sessionToken
| `#phi clearApiData` | 清除API数据
| `#phi updateHistory` | 将BOT端的历史成绩更新到API端
| `#phi updateUserToken` | **主人命令** 上传当前BOT端的用户Token到API端

#### 关于权限的详细说明：

仅通过查分ID即可绑定与获取存档，首次使用`sessionToken`绑定时会将`API Token`设置为`sessionToken`，且用户绑定时若提供`sessionToken`，bot端本地会保存。



---

### 支持我的创作

[<img src="https://github.com/user-attachments/assets/8c181f08-a2b6-4e67-8b61-bd2e4027a6a4" width="400" />](https://afdian.com/a/Feijiang_)  

感谢您的支持，您的支持就是我创作的最大动力！

#### 赞助者

感谢以下赞助者对本项目的支持，鸣谢名单可能更新不及时，欢迎来QQ催我！

<table>
    <tr>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><a href="https://github.com/qilinX88"><img src="https://avatars.githubusercontent.com/u/92022485?v=4?s=100" style="border-radius: 50%" width="50px;" alt="Loser_X"/><br /><sub><b>@Loser_X</b></sub></a><br />🌸 20 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><a href="https://github.com/S-t-e-v-e-e"><img src="https://avatars.githubusercontent.com/u/117198625?v=4?s=100" style="border-radius: 50%" width="50px;" alt="史蒂夫"/><br /><sub><b>@Steve~ɘvɘɈƧ</b></sub><br />🌸 40 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/a743be34fb4e11ef81be52540025c377/avatar/a284c446cefded67dbbf0c14b9eda2a0_w1080_h1080_s115.jpeg?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="溯洌RIPPLE"/><br /><sub><b>溯洌RIPPLE</b></sub><br/>🌸 35 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/default/avatar/avatar-purple.png?imageView2/1/" style="border-radius: 50%" width="50px;" alt="祈"/><br /><sub><b>祈</b></sub><br/>🌸 15 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/7f56847012a911f0853552540025c377/avatar/752eaae4cf8018a82719ea8f42569eae_w2000_h2000_s2699.png?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="茗亿"/><br /><sub><b>茗亿</b></sub><br/>🌸 30 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/fbcb2b98204611eea8f152540025c377/avatar/d4e7f58683064153bfbedb99ad95c6d8_w855_h875_s117.jpeg?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="..."/><br /><sub><b>...</b></sub><br/>🌸 50 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/4041ac584eb111f0b57952540025c377/avatar/04de899ed964c6cfe315d27ea56a1fea_w1080_h1080_s69.jpeg?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="夏夏肃炎"/><br /><sub><b>夏夏肃炎</b></sub><br/>🌸 5 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/7737c9cca1f211ed896a5254001e7c00/avatar/7a320f384ead8f4fca4630efa31c0c3b_w705_h705_s346.jpeg?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="Bluerosion"/><br /><sub><b>Bluerosion</b></sub><br/>🌸 52.0 🌸</td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"><img src="https://pic1.afdiancdn.com/user/00794630e24f11ebac7252540025c377/avatar/f67fff0ab78bcf86d81a7b12a55ba3ca_w374_h354_s148.png?imageView2/1/w/240/h/240" style="border-radius: 50%" width="50px;" alt="Bluerosion"/><br /><sub><b>铃</b></sub><br/>🌸 5 🌸</td>
    </tr>
</table>

---

### 部分功能预览

|**Best30效果图**<br><picture><source srcset="https://github.com/user-attachments/assets/22670da2-cd67-4da3-9589-e139f3db6d82" type="image/avif" width="80%" /><img src="https://github.com/user-attachments/assets/7faf1dba-2cd5-44d5-bc9d-d880fd2f2201" width="80%" /></picture><br>效果图来自[@Steve喵~](https://github.com/S-t-e-v-e-e) | **单曲成绩效果图**<br><picture><source srcset="https://github.com/user-attachments/assets/8a5adadb-3cdf-4371-b1d3-cc869f89a545" type="image/avif" width="40%" /><img src="https://github.com/user-attachments/assets/4594ef39-dacf-4079-9612-5090626f572b" width="40%"></picture><br>效果图来自[@Steve喵~](https://github.com/S-t-e-v-e-e)<br><br>**单曲成绩效果图（Legacy）**<br><picture><source srcset="https://github.com/user-attachments/assets/83296c38-2181-479f-ad26-dfb2e09bccf8" type="image/avif" width="40%" /><img src="https://github.com/Catrong/phi-plugin/assets/117198625/093e3d30-7f9e-48cb-9e12-bb9f0bb3b40c" width="40%"></picture><br>效果图来自[@Steve喵~](https://github.com/S-t-e-v-e-e)<br><br>**单曲图鉴效果图**<br><picture><source srcset="https://github.com/user-attachments/assets/e332c88d-ecd0-49e7-aa6b-310645f14a5a" type="image/avif" width="40%" /><img src="https://github.com/Catrong/phi-plugin/assets/117198625/c6eb9694-8f72-4d3f-85d9-5120375b047b" width="40%"></picture> |
|:-------------------:|:------------------------:|
|**范围成绩效果图**<br><picture><source srcset="https://github.com/user-attachments/assets/b1a4ff41-d26b-4ccc-942d-087797ff02b3" type="image/avif" /><img src="https://github.com/Catrong/phi-plugin/assets/117198625/411dff8e-ec93-4ebe-80ff-510105fd3f65"></picture><br>效果图来自[@东城Eastown](https://space.bilibili.com/171389567) <br><br>**个人信息效果图**<br><picture><source srcset="https://github.com/user-attachments/assets/1361b1e9-510f-4140-a87d-a74b2ee70337" type="image/avif" /><img src="https://github.com/user-attachments/assets/ed20abfa-5bb1-4215-8b2b-8c5171126432"></picture><br>效果图来自[@Steve喵~](https://github.com/S-t-e-v-e-e)|**个人信息效果图（Legacy）**<br><picture><source srcset="https://github.com/user-attachments/assets/c876119b-d98f-4751-85ba-675e6f2ba55f" type="image/avif" width="60%" /><img src="https://github.com/Catrong/phi-plugin/assets/117198625/9e536f1a-4cbe-41da-b2da-94d1bcd70488" width="60%"></picture><br>效果图来自[@东城Eastown](https://space.bilibili.com/171389567)|

---

### 贡献者

感谢以下贡献者对本项目做出的贡献

<a href="https://github.com/Catrong/phi-plugin/graphs/contributors">
  <img src="https://contrib.rocks/image?repo=Catrong/phi-plugin" />
</a>

![Alt](https://repobeats.axiom.co/api/embed/3ba1307fae8ac160167cbb2556334fe324ce3065.svg "Repobeats analytics image")

### Star History

<a href="https://www.star-history.com/#Catrong/phi-plugin&Date">
 <picture>
   <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Catrong/phi-plugin&type=Date&theme=dark" />
   <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Catrong/phi-plugin&type=Date" />
   <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Catrong/phi-plugin&type=Date" />
 </picture>
</a>


---

### 免责声明

1. 功能仅限内部交流与小范围使用，请勿将`Yunzai-Bot`及`phi-Plugin`用于任何以盈利为目的的场景.
2. 图片与其他素材均来自于网络，仅供交流学习使用，如有侵权请联系，会立即删除.
3. 云存档由 [7aGiven/PhigrosLibrary](https://github.com/7aGiven/PhigrosLibrary) 改写而来

###### 写的不好，轻喷……

### 友情链接

<table>
    <tr>
        <td align="center" valign="top" width="35%" nowrap="nowrap"> <a href="https://github.com/yhArcadia/Yunzai-Bot-plugins-index"><b>Yunzai-Bot 相关内容索引</b></a></td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"> <a href="https://github.com/yoimiya-kokomi/Yunzai-Bot"><b>Yunzai-Bot</b></a></td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"> <a href="https://github.com/yoimiya-kokomi/Miao-Yunzai"><b>Miao-Yunzai</b></a></td>
        <td align="center" valign="top" width="35%" nowrap="nowrap"> <a href="https://github.com/TimeRainStarSky/Yunzai"><b>TRSS-Yunzai</b></a></td>
    </tr>
</table>
