Skip to content

Moemu/Nonebot-Plugin-Rikka

Repository files navigation

image

Nonebot-Plugin-Rikka

一个简单的 NoneBot2 舞萌DX / 中二节奏查询成绩插件

Stars PyPI Version PyPI Downloads nonebot2 codestyle QQ Group

Warning

由于 Bot 服务到期且没有续期计划,因此在 QQ 运营的 Bot 服务(@六花Bot)将暂停服务,预计恢复时间九月初。在这期间考虑使用其他 Bot 服务或自行构建。

我们仍在排查 Rikka 插件的登出逻辑失效问题,在这期间若使用该插件进行成绩导入的操作,在接下来的 20 分钟内该账号将不能再次登入。

介绍✨

基于 Nonebot2 的舞萌DX / 中二节奏查分插件

看板娘: Rikka

功能🪄

✅ 支持游戏: 舞萌DX(Ver.CN 1.55+), 中二节奏, Project Sekai(计划中)

✅ 支持数据源: 落雪咖啡屋(舞萌DX, 中二节奏), 水鱼查分器(舞萌DX)

✅ 支持功能:

  • 舞萌DX: Best 50 / Recent 50 / ALL PERFECT 50 / 游玩次数 Top-50 / 拟合系数 Top-50, 指定条件下的乐曲列表,牌子进度,曲目信息查询,推分推荐,Rating 趋势等
  • 中二节奏: Best 30 / Recent 50 / ALL PERFECT 50, 指定条件下的成绩列表,曲目信息查询
  • 玄学功能实现:今日运势、计算推分推荐、玩家成分分析
  • 自定义成绩图:自定义背景图、字体等
  • 同步成绩到落雪 / 水鱼查分器

指令列表🕹️

带有🚧标志的指令暂不可用或仍在开发中

指令 说明
查分器相关
.bind lxns|divingfish 绑定游戏账号/查分器
.unbind lxns|divingfish|all 解绑游戏账号/查分器
.source lxns|divingfish 设置默认查分器
舞萌DX
.mai b50 生成玩家 Best 50
.mai ap50 生成玩家 ALL PERFECT 50
.mai r50 生成玩家 Recent 50(需绑定落雪查分器)
.mai n50 获取玩家拟合系数 Top-50
.mai pc50 生成玩家游玩次数 Top-50
.mai minfo <id|乐曲名称|别名> 获取乐曲信息
.mai score <id|乐曲名称|别名> 获取玩家游玩该乐曲的成绩
.mai scorelist <level|achXX.X|diff> 获取玩家对应条件的成绩列表
.mai random [难度] [等级|定数] 随机获取一首乐曲(可选难度、等级、定数)
.alias add <song_id> <别名> 添加乐曲别名(不会被 update 操作覆盖)
.alias update 从落雪查分器更新乐曲别名数据库
.alias query <id|乐曲名称|别名> 查询该歌曲有什么别名
.update songs|alias|chart 更新乐曲 / 别名 / 拟合系数数据库
.trend [周期] [simple|detailed] 获取玩家的 DX Rating 趋势(需绑定落雪查分器)
.import [divingfish|lxns|all] <二维码> 导入游玩次数或同步成绩到查分器
.今日舞萌 获取今日舞萌运势
.成分分析 获取基于 B100 的玩家成分分析
.推分推荐 生成随机推分曲目
.舞萌状态 获取舞萌服务器状态
中二节奏
.chu b30 生成玩家 Best 30
.chu r50 生成玩家 Recent 50
.chu ap30 生成玩家 ALL PERFECT 30
.chu minfo <id|曲名|别名> 获取乐曲信息
.chu score <id|曲名|别名> 获取玩家游玩该乐曲的成绩
.chu scorelist [等级|定数] [页码] 获取指定条件的成绩列表
.chu random 随机获取一首乐曲
店铺查询
.location-mai list [num] 列出前 num 个舞萌店铺
.location-mai search <name> 搜索舞萌店铺
.location-mai subscribe <keyword> [group_id] 订阅舞萌店铺变动提醒
.location-mai unsubscribe <keyword> 取消订阅舞萌店铺变动提醒
.location-mai subs 查看已订阅的舞萌关键词
.location-chu list [num] 列出前 num 个中二店铺
.location-chu search <name> 搜索中二店铺
.location-chu subscribe <keyword> [group_id] 订阅中二店铺变动提醒
.location-chu unsubscribe <keyword> 取消订阅中二店铺变动提醒
.location-chu subs 查看已订阅的中二关键词

*所有指令需 @bot 才可使用

安装🪄

你需要一个 Nonebot 项目环境,参考:快速上手

  1. 安装 nonebot-plugin-rikka:

使用 nb-cli 安装(pending):

nb plugin install nonebot-plugin-rikka

使用包管理器安装:

pip install nonebot-plugin-rikka

在 NoneBot 的项目配置文件中追加:

plugins = ["nonebot_plugin_rikka"]
  1. 获取静态资源文件: 本项目的渲染资源使用到了 Yuri-YuzuChaN/maimaiDX 提供到的文件。 从 私人云盘, OneDrive 中下载静态资源文件,并解压到机器人根目录下的 static 文件夹中。 如果服务器更新了新歌但是本地不存在对应的资源文件时,插件会自动获取更新。参考第四小节。 (注:对于 nb plugin install 等非克隆方法搭建的服务,你可能需要复制仓库目录下的 static 文件夹到你的机器人根目录下)

  2. 配置查分器开发者密钥,参考配置小节获取配置文件格式。你至少需要配置 落雪咖啡屋(未绑定的首选), 水鱼查分器 任意一个开发者密钥才可正常使用插件功能。

  3. 运行 python -m playwright install chromium 来安装 playwright 浏览器环境,用于模拟浏览器请求游戏资源和获取舞萌状态页截图。

  4. 启动 Nonebot 项目并根据提示运行数据库迁移脚本

  5. 更新乐曲信息: 使用 SUPERUSER 账号执行指令: .update songs(更新本地乐曲信息), .update alias(更新乐曲别名), .update chart(更新乐曲拟合系数等信息)。 当服务器更新了新歌时建议再跑一次上面的三个指令。

  6. (可选)如果需要支持乐曲标签,您需要自行获取来自 DXRatingcombined_tags.json 并放置在 static 文件夹中

配置⚙️

使用 .env 文件中配置以下内容

配置项 说明 类型 默认值
add_alias_need_admin 添加别名需要管理员权限 bool True
static_resource_path 自定义静态资源路径(该目录下至少存在 mai 文件夹) str static
lxns_developer_api_key 落雪咖啡屋开发者密钥(两个开发者密钥二选一) Optional[str] None
divingfish_developer_api_key 水鱼查分器开发者密钥 Optional[str] None
enable_arcade_provider 启用 Maimai.py 的机台源查询(需要将此值设置为 True 才可以查询 PC 数) bool False
maistatus_url 舞萌状态页地址,用于渲染 .maistatus Optional[str] https://status.snowy.moe/status/maimai
scorelist_bg 成绩图背景,建议比例 8:7 Optional[str] None
scorelist_font_main 成绩图主字体文件 Optional[str] None
scorelist_font_color 成绩图默认文字颜色 tuple[int, int, int, int] (124, 129, 255, 255)
scorelist_font_num 成绩图数字字体文件 Optional[str] None
scorelist_element_opacity 成绩图元素不透明度(0.0 ~ 1.0) float 1.0
enable_subscribe_function 启用机厅列表更新订阅功能(需要平台支持,建议在测试后使用) bool False

有关 enable_arcade_provider 的说明: 部分功能需要连接至游戏服务器才可使用(比如 PC 数获取和水鱼查分器更新),但由于服务器对机房 IP 做出了限制,在部分网络环境下无法与官方服务器通信(使用 .status 命令以确认),因此此配置项默认为 False 并禁用相关功能。

关于🎗️

本项目基于 MIT License 许可证提供,涉及到再分发时请保留许可文件的副本。除此之外,另有 Yuri-YuzuChaN/maimaiDX 的许可证副本 License

本项目的产生离不开下列开发者的支持,感谢你们的贡献:

Rikka 的贡献者们

本项目的渲染逻辑 (painters) 和资源修改或引用自 Yuri-YuzuChaN/maimaiDX,感谢上游项目的代码实现和游戏资源整理

本项目的分数查询功能基于 TrueRou/maimai.py 提供的框架进行开发。

本项目同样是 MuikaAI 的一部分

afadian

免责声明:

部分服务需要连接至游戏服务器,开发者未使用软件逆向等数据和工具对任何游戏文件进行分析。本服务可能存在未知的逻辑错误,可能会导致潜在的风险如数据丢失、系统崩溃等,由用户自行决定是否下载、使用本服务。如果启用了 enable_arcade_provider 并使用了相关服务,则说明您已同意这一点。

Star History:

Star History Chart

About

Nonebot 2 舞萌中二查分Bot插件 | 支持舞萌查分器导入

Topics

Resources

License

Code of conduct

Contributing

Stars

11 stars

Watchers

1 watching

Forks

Contributors

Languages