Skip to content

FrostN0v0/nonebot-plugin-skland

Repository files navigation

NoneBotPluginLogo

nonebot-plugin-skland

✨ 通过森空岛查询游戏数据 ✨

license pypi pypi downloads python
pre-commit.ci status NoneBot Registry uv ruff CodeFactor
📸 演示与预览   |   📦️ 下载插件   |   💬 加入交流群

📖 介绍

通过森空岛查询游戏数据

Note

本插件存在大量未经验证的数据结构以及 💩 山

如在使用过程中遇到问题,欢迎提 issue 帮助改进项目

starify

Star History Star History Chart

💿 安装

使用 nb-cli 安装 在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装
nb plugin install nonebot-plugin-skland
使用包管理器安装 在 nonebot2 项目的插件目录下, 打开命令行, 根据你使用的包管理器, 输入相应的安装命令
pip
pip install nonebot-plugin-skland
pdm
pdm add nonebot-plugin-skland
uv
uv add nonebot-plugin-skland
poetry
poetry add nonebot-plugin-skland
conda
conda install nonebot-plugin-skland

打开 nonebot2 项目根目录下的 pyproject.toml 文件, 在 [tool.nonebot] 部分追加写入

plugins = ["nonebot_plugin_skland"]

⚙️ 配置

配置表

在 nonebot2 项目的.env文件中修改配置项

配置项 必填 默认值 说明
skland__github_proxy_url "" GitHub 代理 URL
skland__github_token "" GitHub Token
skland__check_res_update False 是否在启动时检查资源更新
skland__background_source "default" 背景图片来源
skland__endfield_background_simple False 终末地背景图片简化模式
skland__rogue_background_source "rogue" 肉鸽战绩背景图片来源
skland__argot_expire 300 暗语消息过期时间(秒)
skland__gacha_render_max 30 明日方舟抽卡记录单图渲染上限(单位:卡池)
skland__ef_gacha_render_max 5 终末地抽卡记录单图渲染卡池上限

Tip

以上配置项均没什么用按需填写,GitHub Token 用于解决 fetch_file_list 接口到达免费调用上限,但不会有那么频繁的更新频率,99.98%的概率是用不上的。只是因为我开发测试的时候上限了,所以有了这项,

本插件所使用的干员半身像技能图标等资源,均优先调用本地,不存在则从网络请求获取,所以本地资源更新非必要选项,按需填写,不想过多请求网络资源可以自动或指令手动更新下载本地资源。

background_source

skland__background_source 为背景图来源,可选值为字面量 default / Lolicon / random 或者结构 CustomSourceLolicon 为网络请求获取随机带arknightstag 的背景图,random为从默认背景目录中随机, CustomSource 用于自定义背景图。 默认为 default

rogue_background_source 为肉鸽战绩背景图来源,可选值为字面量 default / Lolicon / rogue 或者结构 CustomSourcerogue为根据肉鸽主题提供的一套默认背景图。

以下是 CustomSource 用法示例

在配置文件中设置 skland__background_sourceCustomSource结构的字典

CustomSource配置示例
  • 网络链接

    • uri 可为网络图片 API,只要返回的是图片即可
    • uri 也可以为 base64 编码的图片,如 data:image/png;base64,xxxxxx (一般也没人这么干)
skland__background_source = '{"uri": "https://example.com/image.jpg"}'
  • 本地图片
  • uri 也可以为本地图片路径,如 imgs/image.jpg/path/to/image.jpg
  • 如果本地图片路径是相对路径,会使用 nonebot-plugin-localstore 指定的 data 目录作为根目录
  • 如果本地图片路径是目录,会随机选择目录下的一张图片作为背景图
skland__background_source = '{"uri": "/imgs/image.jpg"}'

🎉 使用

Note

记得使用命令前缀

🪧 指令总览

🔐 账号管理
指令 权限 说明
skland bind <token|cred> 所有 绑定森空岛账号
skland bind -u <token|cred> 所有 更新绑定的 token 或 cred
skland qrcode 所有 扫码绑定森空岛账号
skland unbind 所有 解绑森空岛账号
skland char update 所有 更新森空岛绑定角色信息

快捷指令: 森空岛绑定 扫码绑定 森空岛解绑 角色更新

🎮 游戏信息
指令 权限 说明
skland 所有 查询默认角色信息卡片
skland @某人 所有 查询指定用户的角色信息
skland <QQ号> 所有 查询指定QQ号的角色信息
✍️ 每日签到

明日方舟签到

指令 权限 说明
skland arksign sign --all 所有 签到所有绑定角色
skland arksign sign -u <uid> 所有 指定 UID 角色签到
skland arksign status 所有 查询个人角色签到状态
skland arksign all 超级用户 签到所有绑定到 bot 的角色
skland arksign status --all 超级用户 查询所有角色的签到状态

快捷指令: 明日方舟签到 签到详情 全体签到 全体签到详情

终末地签到

指令 权限 说明
skland efsign sign --all 所有 签到所有绑定角色
skland efsign sign -u <uid> 所有 指定 UID 角色签到
skland efsign status 所有 查询个人角色签到状态
skland efsign all 超级用户 签到所有绑定到 bot 的角色
skland efsign status --all 超级用户 查询所有角色的签到状态

快捷指令: 终末地签到 终末地签到详情 终末地全体签到 终末地全体签到详情

终末地角色卡片

指令 权限 说明
skland efcard 所有 查询终末地角色信息卡片
skland efcard @某人 所有 查询指定用户的终末地角色信息
skland efcard -a 所有 展示所有角色
skland efcard -s 所有 使用简化背景

快捷指令: ef

Tip

插件会在每天 00:15 自动为所有明日方舟绑定角色签到,00:20 自动为所有终末地绑定角色签到,一般无需手动签到

🎲 肉鸽战绩
指令 权限 说明
skland rogue 所有 查询默认角色的最新肉鸽战绩
skland rogue @某人 所有 查询指定用户的肉鸽战绩
skland rogue --topic <主题> 所有 查询指定主题的肉鸽战绩
skland rginfo <战绩id> 所有 查询最近战绩的详细信息
skland rginfo <战绩id> -f 所有 查询收藏战绩的详细信息

主题选项: 傀影 水月 萨米 萨卡兹 界园

快捷指令: 战绩详情 收藏战绩详情 傀影肉鸽 水月肉鸽 萨米肉鸽 萨卡兹肉鸽 界园肉鸽

Tip

查询战绩详情时需要回复一条通过肉鸽战绩查询获取的图片消息

🎰 抽卡记录
指令 权限 说明
skland gacha 所有 查询完整抽卡记录
skland gacha -b <起始id> 所有 从指定位置开始查询
skland gacha -l <结束id> 所有 查询到指定位置结束
skland gacha -b <起始> -l <结束> 所有 查询指定范围的抽卡记录
skland import <url> 所有 导入小黑盒抽卡记录

快捷指令: 方舟抽卡记录 导入抽卡记录

Tip

抽卡记录使用提示:

  • 支持指定范围查询,如 skland gacha -b -3 查询倒数 3 个卡池
  • 或者 skland gacha -b 3 -l 25 查询第 3 到 25 个卡池
  • 导入记录时,在小黑盒抽卡分析页底部点击数据管理导出并复制链接
  • 单页卡池数超过配置的 skland__gacha_render_max 会输出多张图片
🎰 终末地抽卡记录
指令 权限 说明
skland efgacha 所有 查询终末地抽卡记录(从数据库缓存)
skland efgacha -u 所有 从接口拉取最新数据并更新
skland efgacha -b <起始> -l <结束> 所有 指定各类别卡池渲染范围
skland efgacha -u -l 3 所有 更新数据并只渲染各类别前3个卡池

快捷指令: 终末地抽卡记录 终末地抽卡更新

Tip

终末地抽卡记录使用提示:

  • 默认从数据库缓存读取渲染,首次使用或需要更新时请加 -u 参数
  • -b/-l 对各类别卡池(限定/武器/常驻/新手)分别计数
  • 单页卡池数超过配置的 skland__ef_gacha_render_max 会自动分页发送多张图片
🔧 资源管理
指令 权限 说明
skland sync 超级用户 同时更新图片和数据资源
skland sync --img 超级用户 仅更新图片资源
skland sync --data 超级用户 仅更新数据资源
skland sync --force 超级用户 强制更新,忽略版本检查
skland sync --update 超级用户 覆盖已存在的文件

快捷指令: 资源更新

Tip

资源更新选项说明:

  • 可以组合使用选项,如 skland sync --img --force --update
  • 图片资源包括干员立绘、技能图标等,数据资源包括卡池数据、角色数据等
  • 默认跳过已存在的文件,使用 --update 可强制覆盖
  • 本地资源优先,不存在时从网络获取,非必要无需更新
🎨 暗语功能

暗语功能由 nonebot-plugin-argot 提供支持

使用方法: 回复插件渲染的图片消息,发送对应的暗语指令

暗语指令 对象 说明
background 信息卡片 查看卡片背景图
clue 游戏信息 查看角色线索板

🎯 快捷指令速查

查看所有快捷指令
触发词 执行指令 说明
森空岛绑定 skland bind 绑定账号
扫码绑定 skland qrcode 扫码绑定
森空岛解绑 skland unbind 解绑账号
明日方舟签到 skland arksign sign --all 签到所有角色
签到详情 skland arksign status 个人签到状态
全体签到 skland arksign all 全部角色签到
全体签到详情 skland arksign status --all 全部签到状态
ef skland efcard 终末地角色卡片
终末地签到 skland efsign sign --all 终末地签到
终末地签到详情 skland efsign status 终末地签到状态
终末地全体签到 skland efsign all 终末地全部签到
终末地全体签到详情 skland efsign status --all 终末地全部签到状态
角色更新 skland char update 更新角色信息
全体角色更新 skland char update --all 更新所有用户角色
资源更新 skland sync 更新资源文件
界园肉鸽 skland rogue --topic 界园 界园主题战绩
萨卡兹肉鸽 skland rogue --topic 萨卡兹 萨卡兹主题战绩
萨米肉鸽 skland rogue --topic 萨米 萨米主题战绩
水月肉鸽 skland rogue --topic 水月 水月主题战绩
傀影肉鸽 skland rogue --topic 傀影 傀影主题战绩
战绩详情 skland rginfo 查询战绩详情
收藏战绩详情 skland rginfo -f 查询收藏战绩
方舟抽卡记录 skland gacha -l 3 查询抽卡记录
导入抽卡记录 skland import 导入抽卡数据
终末地抽卡记录 skland efgacha 终末地抽卡记录
终末地抽卡更新 skland efgacha -u 拉取最新抽卡数据

🪄 自定义快捷指令

基于 Alconna 快捷指令 实现

点击查看详细说明

语法:

# 添加快捷指令
/skland --shortcut <自定义指令> <目标指令>

# 删除快捷指令
/skland --shortcut delete <自定义指令>

# 列出所有快捷指令
/skland --shortcut list

示例:

# 添加一个签到快捷指令
用户: /skland --shortcut /兔兔签到 "/skland arksign sign --all"
Bot: skland::skland 的快捷指令: "/兔兔签到" 添加成功

# 添加一个查询战绩的快捷指令
用户: /skland --shortcut 查战绩 "skland rogue"
Bot: skland::skland 的快捷指令: "查战绩" 添加成功

Note

  • 自定义指令不自动带命令前缀,需要时请手动添加
  • 指令中包含空格时,需要用引号 "" 包裹

Note

Token 获取相关文档还没写才不是懒得写

可以参考token获取获取

本插件支持 cred 和 token 两种方式手动绑定,使用二维码绑定时会提供 token,请勿将 token 提供给不信任的 Bot 所有者

📸 效果图

🔮 游戏信息

明日方舟

方舟卡片

明日方舟:终末地

终末地卡片

🫖 肉鸽战绩

肉鸽战绩

🏆 战绩详情

战绩详情

🕵️‍♀ 线索板

线索板

🦭 抽卡记录

明日方舟

明日方舟抽卡记录

终末地

终末地抽卡记录

💖 鸣谢

贡献者们

contributors

📢 声明

本插件仅供学习交流使用,数据由 森空岛 提供,请勿用于商业用途。

使用过程中,任何涉及个人账号隐私信息(如账号 token、cred 等)的数据,请勿提供给不信任的 Bot 所有者(尤其是 token)。

📋 TODO

  • 完善用户接口返回数据解析
  • 使用nonebot-plugin-htmlrender渲染信息卡片
  • yuanyan3060/ArknightsGameResource下载游戏数据、检查数据更新
  • 绘制渲染粥游信息卡片
  • 支持扫码绑定
  • 优化资源获取形式
  • 完善肉鸽战绩返回信息解析
  • 绘制渲染肉鸽战绩卡片
  • 粥游签到自动化
  • 实现抽卡记录获取及渲染
  • 支持抽卡记录导入(从小黑盒)
  • 抽卡记录分页
  • 支持终末地角色信息查询及签到
  • 支持终末地抽卡记录查询及分页
  • 实现 box 查询
  • 实现图鉴查询
  • 完善多服账号管理
  • 扬了不必要的 💩
  • 待补充,欢迎 pr

About

通过森空岛查询游戏数据,支持明日方舟和终末地

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors