Skip to content

monsterxcn/nonebot-plugin-gachalogs

Repository files navigation

NoneBot Plugin GachaLogs


🤖 用于分析与管理原神祈愿记录的 NoneBot2 插件


license pypi python QQ Chat Group
Code style: black Imports: isort Lint: flake8 pre-commit


祈愿统计图 成就示意图

安装方法

如果你正在使用 2.0.0.beta1 以上版本 NoneBot2,推荐使用以下命令安装:

# 从 nb_cli 安装
nb plugin install nonebot-plugin-gachalogs

# 或从 PyPI 安装
pip install nonebot-plugin-gachalogs

使用须知

  • 初次使用 抽卡记录 命令时,要求输入祈愿历史记录链接或米哈游通行证 Cookie。如果初次使用输入链接(只要回复的内容中含有即可,不必手动截取准确的链接),在该链接的 AuthKey 过期(24 小时)后需要重新输入链接或 Cookie 才能刷新数据。如果初次使用输入 Cookie,只要 Cookie 有效,后续使用时祈愿历史记录链接将自动更新,无需再次输入。

  • 插件使用米哈游通行证 Cookie 来自动更新祈愿历史记录链接,该 Cookie 可在 米哈游通行证 登陆获取,并非一些教程中使用的 米游社 BBS Cookie,其中需要包含 stoken stuidlogin_ticket

    你可以参考 KimigaiiWuyi/GenshinUID#255 等教程获取米哈游通行证 Cookie。此处提供一种获取该 Cookie 的简便方法:

    1. 在桌面端浏览器新建 隐身标签页,后面均在此隐身标签页内操作
    2. 进入 https://www.miyoushe.com/ys/ 并正常登录
    3. 进入 http://user.mihoyo.com/ 并正常登录
    4. 按下 F12 键,切换至「Console / 控制台」页面,在输入处(通常由蓝色「>」符号示意)输入 document.cookie 回车,控制台中出现的字符串即为插件需要的 Cookie
  • 一般来说,插件安装完成后无需设置环境变量,只需重启 Bot 即可开始使用。你也可以在 NoneBot2 当前使用的 .env 文件中参考 .env.example 添加下表给出的环境变量,对插件进行更多配置。环境变量修改后需要重启 Bot 才能生效。

    环境变量 必需 默认 说明
    gachalogs_safe_group [] 安全群组,只有在安全群组内才允许输入链接、Cookie 等内容
    gacha_expire_sec 3600 祈愿历史记录本地缓存过期秒数
    resources_dir /path/to/bot/data/ 插件缓存目录的父文件夹,包含 gachalogs 文件夹的上级文件夹路径
    gachalogs_font /path/to/bot/data/gachalogs/LXGW-Bold.ttf 祈愿历史记录绘制字体
    gachalogs_pie_font /path/to/bot/data/gachalogs/LXGW-Bold-minipie.ttf 祈愿历史记录绘制饼图字体
    gachalogs_achieve_font /path/to/bot/data/gachalogs/HYWH-85W.ttf 祈愿历史记录绘制成就字体
  • 在群组中发送米哈游通行证 Cookie 等内容存在安全隐患,因此即使某些命令在群组中触发,处理结果最终也会通过私聊发送。如果用户未添加 Bot 为好友,私聊消息将发送失败。添加安全群组环境变量,即可允许在这些群组中直接发送敏感消息,如果大家不在意的话。

  • commit e2f38f3 之后插件私聊文件发送功能不再依赖腾讯云 COS 转存,只需 go-cqhttp 支持 上传私聊文件 接口。因此如果有私聊文件发送需求,务必保证 go-cqhttp 版本不低于 v1.0.0-rc3

  • 使用 抽卡记录导出 命令生成的表格与 JSON 文件均符合 统一可交换祈愿记录标准(UIGF)格式,你可以尝试在其他支持此标准的工具中导入。导出的祈愿历史记录链接、米哈游通行证 Cookie 在某些地方也许有用。

  • 插件运行后,用户的基本配置信息会写入 config.json 文件,祈愿历史记录数据缓存于 gachalogs-{uid}.json 文件。

命令说明

  • 抽卡记录 / ckjl

    返回一张祈愿历史记录统计图,样式与 https://genshin.voderl.cn/ 一致。

    可选附带参数 默认 说明
    刷新 / -f / --force 要求强制刷新最新祈愿历史记录,即使本地缓存未过期(结果默认缓存 1 小时)
    祈愿历史记录链接 指定祈愿历史记录链接(仅初次使用、无法自动更新祈愿历史记录链接时生效)
    米哈游通行证 Cookie 指定米哈游通行证 Cookie(仅初次使用、无法自动更新祈愿历史记录链接时生效)
  • 抽卡成就 / ckcj

    返回一张祈愿历史记录成就图,样式与 https://genshin.voderl.cn/ 一致。

  • 抽卡记录导入(在私聊或群聊中上传抽卡记录文件)

    返回导入结果及一张祈愿历史记录统计图。

    普通用户只允许导入与本地记录(如果有)归属 UID 相同的抽卡记录。超级用户在普通用户规则基础上,还允许为拥有本地记录的其他用户导入 UID 相同的抽卡记录。

    目前支持导入的文件格式有:

    • 程序内部缓存格式。导入后执行恢复,即将本地记录直接替换为该文件的记录
    • UIGF v2.2 格式,并且每条记录必须拥有 time rank_type 等 UIGF v2.2 标准中定义为非必需的字段。导入后执行合并,即尝试将本地记录与该文件的记录合并

    如果导入前 被导入者 有本地记录,插件会创建一个本地记录备份文件用于意外恢复,并尝试通过私聊将此文件发送给 被导入者(如果发送成功则 Bot 在服务器上创建的备份文件会被删除)。一旦发现插件导入后记录异常,被导入者 可以直接发送此文件给 Bot 来触发记录恢复。

  • 抽卡记录导出 / logexp / ckjldc

    导出祈愿历史记录表格,通过可选附带参数指定导出祈愿历史记录 JSON 文件、祈愿历史记录链接或米哈游通行证 Cookie。

    可选附带参数 默认 说明
    @某人 @自己 指定导出记录用户,仅 Bot 管理员 可导出其他用户的记录
    统一 / 标准 / uigf / json 指定导出祈愿历史记录为 JSON 文件
    链接 / 地址 / url 指定导出祈愿历史记录链接
    饼干 / ck / cookie 指定导出米哈游通行证 Cookie

    导出示意图

  • 抽卡记录删除 / logdel / ckjldc

    默认只删除本地祈愿历史记录缓存(不会影响 Cookie 等配置数据),即只删除 gachalogs-{uid}.json 文件。

    如果需要连同指定用户在 config.json 文件中的配置一起删除,请使用附带参数 全部 等。

    记录、配置一旦删除将无法恢复,所以只有输入中附带了 确认 等附带参数时,命令才会真正对本地文件执行删除动作。

    可选附带参数 默认 说明
    @某人 @自己 指定删除记录或配置的用户,仅 Bot 管理员 可删除其他用户的记录或配置
    强制 / 确认 / force / -f / -y 删除操作确认
    全部 / 所有 / 配置 / all / -a / config / -c 指定删除用户的 配置和记录 全部数据

特别鸣谢

@nonebot/nonebot2 | @Mrs4s/go-cqhttp | @sunfkny/genshin-gacha-export | @voderl/genshin-gacha-analyzer | @vikiboss/genshin-helper | @DGP-Studio/Snap.Metadata

About

🤖 NoneBot2 原神抽卡记录分析与管理插件,支持记录链接自动更新!

Topics

Resources

License

Stars

Watchers

Forks

Languages