Skip to content
This repository has been archived by the owner on Mar 28, 2022. It is now read-only.

An arcaea rhythm game score-querying bot plugin for nonebot2.

License

Notifications You must be signed in to change notification settings

iyume/nonebot-plugin-arcaea

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nonebot-plugin-arcaea

pypi python license

功能 Resume

Arcaea 查分器,可以实现 best30 | recent | songinfo 之类的查询功能

特点 Feature

  • 不配置的情况下也可使用 b30 | recent 功能,默认配置下使用 estertion 维护的公开源作为查分来源

  • API 可拓展性,只需编写额外的 Adapter

  • 查分灵活性,可以为每个查分命令配置查分的源,见 配置项

  • 以图片形式返回 b30 | recent

  • 抽象类为图片主题的编写提供了接口,只需要编写一个包并贡献至 messages/themes/pkgs 便可使用对应的图片主题,见 开发一个主题

  • config 命令允许用户设置自己查分的主题

  • 为来自 BotArcAPI 搭建的 API 做了适配

  • handler 分离式设计,增加对命令处理的灵活性

快速开始 Quickstart

注意

  1. 由于使用了 shell_like command,使用前请保证 nonebot2 处于 v2a9 以上的版本

  2. 安装插件

(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')

若没有,请手动添加

指令 Command

  • /arc help 帮助文档

  • /arc bind 绑定账户

  • /arc info 查询个人信息,需绑定账户,返回 文字

  • /arc recent 查询最近游玩,返回 文字 / 图片

  • /arc b30 查询玩家 best30,返回 文字 / 图片

  • /arc songinfo 查询歌曲信息,返回 文字,无需注册

  • /arc config 配置用户信息,可选 config.{$b30} / config.{$recent}

  • /arc current-config 查询用户配置信息

可选配置项 Optional Env

大小写随意

  • ARCAEA_BOTARCAPI_URI: 可选配置项,填写 BotArcApi 的服务器地址

  • ARCAEA_QUERY_CONFIG: 可选配置项,填写命令查分源,格式为字典,源码有注释

  • 更多设置请见源码

准备开发 Develop

准备

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 即可

主题开发

  1. 在目录 messages/themes/pkgs 下新建目录,格式为 theme_ + 你的主题名

  2. 基类源码见 messages/themes/_base.py

  3. 参数参照 schema/api 内的文件,也可直接查看 BotArcAPI 给的传输示例,甚至因为类型提示的存在,你可以啥都不看就开始写

  4. config.pyAVAILABLE_USER_CONFIG 条目里加上你的主题包名

  5. PR

注意

由于 ttf 文件会附带在源码内,请不要使用中文字体开发主题,尽量使用英文字体,后期可能会考虑限制字体类型

同样地,作为背景的图片尽量压缩 (500k 以内),不仅仅是减少源码的负担,在消息传输时过大的 base64 字符串容易也导致发送失败

特别感谢

目前开发情况

一些 BotArcAPI 的接口实现尚未完善成一个指令

recent 查分还没有一个图片示例的实现

handlers 那一块的结构需要调整

源码注释不太足够

后期打算

查询 estertion 得到的 allscores 使用 fastapi 编写 endpoint 并挂载到 bot 上

为 recent 添加图片功能(包括人物之类的各种资源)

根据 estertion 中提供的查分历史配合 数据科学分析工具 来合成用户 ptt 走向

实现所有 botarcapi 中提供的 api

About

An arcaea rhythm game score-querying bot plugin for nonebot2.

Topics

Resources

License

Stars

Watchers

Forks

Languages