An arcaea rhythm game score-querying bot plugin for nonebot2.
Arcaea 查分器,可以实现 best30
| recent
| songinfo
之类的查询功能
不配置的情况下也可使用 b30
| recent
功能,默认配置下使用 estertion 维护的公开源作为查分来源
API 可拓展性,只需编写额外的 Adapter
查分灵活性,可以为每个查分命令配置查分的源,见 配置项
以图片形式返回 b30
| recent
抽象类为图片主题的编写提供了接口,只需要编写一个包并贡献至 messages/themes/pkgs
便可使用对应的图片主题,见 开发一个主题
config
命令允许用户设置自己查分的主题
为来自 BotArcAPI 搭建的 API 做了适配
handler
分离式设计,增加对命令处理的灵活性
注意
由于使用了 shell_like command,使用前请保证 nonebot2
处于 v2a9 以上的版本
安装插件
(activate your virtualenv)
pip install nonebot-plugin-arcaea
或者
git clone https://github.com/iyume/nonebot-plugin-arcaea
activate your virtualenv
(cd ~/path/to/nonebot-plugin-arcaea && pip install .)
如果你使用的是 nb plugin install
,此时 bot.py
会自动插入 nonebot.load_plugin('nonebot_plugin_arcaea')
若没有,请手动添加
/arc help
帮助文档
/arc bind
绑定账户
/arc info
查询个人信息,需绑定账户,返回 文字
/arc recent
查询最近游玩,返回 文字 / 图片
/arc b30
查询玩家 best30,返回 文字 / 图片
/arc songinfo
查询歌曲信息,返回 文字,无需注册
/arc config
配置用户信息,可选 config.{$b30} / config.{$recent}
/arc current-config
查询用户配置信息
大小写随意
ARCAEA_BOTARCAPI_URI
: 可选配置项,填写 BotArcApi 的服务器地址
ARCAEA_QUERY_CONFIG
: 可选配置项,填写命令查分源,格式为字典,源码有注释
更多设置请见源码
pip 开发模式安装 nonebot-plugin-arcaea
cd nonebot2/src/plugins/npa
git clone https://github.com/iyume/nonebot-plugin-arcaea .
(activate virtualenv)
pip install -e .
插件加载单独写为一行
nonebot.load_plugins('src/plugins/npa')
注意
nonebot 开发模式会导致 watchgod 监视 db 文件的改动,导致每次 db 的变更都会使得 nonebot 重启,请不要惊讶,将环境设为 dev 即可
在目录 messages/themes/pkgs
下新建目录,格式为 theme_
+ 你的主题名
基类源码见 messages/themes/_base.py
参数参照 schema/api
内的文件,也可直接查看 BotArcAPI 给的传输示例,甚至因为类型提示的存在,你可以啥都不看就开始写
在 config.py
中 AVAILABLE_USER_CONFIG
条目里加上你的主题包名
注意
由于 ttf 文件会附带在源码内,请不要使用中文字体开发主题,尽量使用英文字体,后期可能会考虑限制字体类型
同样地,作为背景的图片尽量压缩 (500k 以内),不仅仅是减少源码的负担,在消息传输时过大的 base64
字符串容易也导致发送失败
一些 BotArcAPI 的接口实现尚未完善成一个指令
recent
查分还没有一个图片示例的实现
handlers 那一块的结构需要调整
源码注释不太足够
查询 estertion 得到的 allscores 使用 fastapi 编写 endpoint 并挂载到 bot 上
为 recent 添加图片功能(包括人物之类的各种资源)
根据 estertion 中提供的查分历史配合 数据科学分析工具 来合成用户 ptt 走向
实现所有 botarcapi 中提供的 api