Yuri-YuzuChaN / nonebot-plugin-maimaidx

街机音游 舞萌DX 的 nonebot2 插件
MIT License
59 stars 8 forks source link

修复若干问题 #18

Closed xjrjyy closed 5 months ago

xjrjyy commented 5 months ago

水鱼查分器用户名支持空格,查询 test space 的 b50 应得到空白图片

xjrjyy commented 5 months ago

我对照了一下查分器源码,修改的 API 返回值类型都不为空

Yuri-YuzuChaN commented 5 months ago

我对照了一下查分器源码,修改的 API 返回值类型都不为空

项目为移植,原项目均为 Optional 类型,该项目使用 pydantic 模块为强制数据类型验证,为防止空值导致无法启动bot

https://github.com/Diving-Fish/mai-bot/blob/9334c2e5b9e97a4ecba25fb242bae501820de6aa/src/libraries/maimaidx_music.py#L81-L91

Yuri-YuzuChaN commented 5 months ago

水鱼查分器用户名支持空格,查询 test space 的 b50 应得到空白图片

原项目也并不支持空白用户名查询,虽然是支持空格,但字符串还是得进行 strip() 操作

https://github.com/Diving-Fish/mai-bot/blob/9334c2e5b9e97a4ecba25fb242bae501820de6aa/src/plugins/maimaidx.py#L293-L310

xjrjyy commented 5 months ago

水鱼查分器用户名支持空格,查询 test space 的 b50 应得到空白图片

原项目也并不支持空白用户名查询,虽然是支持空格,但字符串还是得进行 strip() 操作

https://github.com/Diving-Fish/mai-bot/blob/9334c2e5b9e97a4ecba25fb242bae501820de6aa/src/plugins/maimaidx.py#L293-L310

用户名处理那里是 strip() 写成了 split(),我改回来了(原来的写法在用户名没有空白字符的情况下不会出错)

xjrjyy commented 5 months ago

我对照了一下查分器源码,修改的 API 返回值类型都不为空

项目为移植,原项目均为 Optional 类型,该项目使用 pydantic 模块为强制数据类型验证,为防止空值导致无法启动bot

https://github.com/Diving-Fish/mai-bot/blob/9334c2e5b9e97a4ecba25fb242bae501820de6aa/src/libraries/maimaidx_music.py#L81-L91

我检查了所有修改部分的引用,有些是类型写错了(比如 : str = None),其他的用的时候都需要保证不为空(为空就是 API 坏了,之前已经有对这种情况的处理了)

xjrjyy commented 5 months ago

修正类型标注主要是解决编辑器类型检查报错的问题,能修的大概就这些了,剩下的可能需要重写一些逻辑

注:assert 的部分上文已经确保了不会为空,只是为了解决类型检查问题