Skip to content

一个自动下载和管理米哈游游戏 PC 端更新包的工具 | A tool for automating the downloading and management of packages for miHoYo PC games

License

Notifications You must be signed in to change notification settings

AetherIsland/kirara

Repository files navigation

绮良良 kirara

一个自动下载和管理米哈游游戏 PC 端更新包的工具。

原理

  1. 从上游 API 获取数据,形成带有元数据的扁平文件列表。
  2. 根据配置文件中配置的规则,对文件列表进行过滤。
  3. 查询每个文件在文件存储(本地)中是否存在,若不存在则启动下载任务。同时,尝试删除不需要的文件。
  4. 生成状态信息用于展示或其他用途。
  5. 定时重复执行上面的任务。

使用

方式一:预构建版本

  1. 在 GitHub Releases 中下载预先构建好的 JS Bundle。
  2. 编写配置文件 app.config.json
  3. 使用最新 LTS 版 Node.js 运行。

方式二:从源码运行

  1. 克隆或打包下载本仓库。
  2. 安装依赖:npm install
  3. 构建:npm run build:rollupnpm run build:tsc
  4. 编写配置文件 app.config.json
  5. 运行:npm start

配置

目前,应用会在启动时读取工作目录下的 app.config.json 文件,并进行基本验证。以下是一个示例配置文件。

Note

JSON 文件不支持注释。

{
    // (可选)状态信息文件
    "statusFile": "/srv/kirara/status.json",
    // 存储配置
    "storage": {
        // 存储类型,目前有 dummy(调试用)、local(Node.js 本地下载)、aria2(Aria2 本地下载)
        "type": "aria2",
        // 下载文件存储路径
        "root": "/srv/kirara/files",
        // (可选)状态信息中本地文件路径的基础 URL
        "url": "https://kirara.example.com/files/"
    },
    // 任务配置
    "tasks": [
        {
            // 启动器配置
            "launcher": {
                // 启动器类型
                "type": "miHoYoLauncher",
                // API 语言
                "language": "zh-cn"
            },
            // 过滤器配置
            "filters": [
                {
                    // 此过滤器匹配 biz 为 bh3_cn 的游戏
                    "matchGameBiz": "bh3_cn",
                    // (可选)只选取语言为 zh-cn 的音频资源
                    "audioLanguages": [
                        "zh-cn"
                    ],
                    // (可选)主分支(线上版本)配置
                    "branchMain": {
                        // (可选)选取完整包
                        "major": true,
                        // (可选)选取所有差分包
                        "patches": true
                    },
                    // (可选)预下载分支配置
                    "branchPreDownload": {
                        "major": true,
                        "patches": true
                    }
                },
                {
                    // 此过滤器匹配剩余的所有游戏
                    "matchGameBiz": "*",
                    "audioLanguages": [
                        "zh-cn"
                    ],
                    "branchMain": {
                        "major": false,
                        // 只选取最新的差分包
                        "patches": "latest-only"
                    },
                    "branchPreDownload": {
                        "major": false,
                        "patches": "latest-only"
                    }
                }
            ]
        }
    ]
}

已知的启动器和游戏信息

米哈游启动器,ID 为 jGHBHlcOq1。配置 launcher.typemiHoYoLauncher

游戏 biz id
崩坏3 bh3_cn osvnlOc0S8
原神 hk4e_cn 1Z8W5NHUQb
崩坏:星穹铁道 hkrpg_cn 64kMb5iAWu
绝区零 nap_cn x6znKlJ0xK

HoYoPlay,ID 为 VYTpXlbWo8。配置 launcher.typeHoYoPlay

游戏 biz id
崩坏3 bh3_global 5TIVvvcwtM
原神 hk4e_global gopR6Cufr3
崩坏:星穹铁道 hkrpg_global 4ziysqXOQ8
绝区零 nap_global U5hbdsT9W7

哔哩哔哩渠道服每个游戏使用独立的启动器,具体见下表。

游戏 biz id launcher.type 启动器 ID
原神 hk4e_cn T2S0Gz4Dr2 BilibiliGenshin umfgRO5gh5
崩坏:星穹铁道 hkrpg_cn EdtUqXfCHh BilibiliStarRail 6P5gHMNyK3
绝区零 nap_cn HXAFlmYa17 BilibiliZZZ xV0f4r1GT0

许可

此项目使用 MIT 许可。阅读《逐行解读 MIT 许可证》了解更多。

设计 HYP 模块时参考了 YuehaiTeam/cocogoatScighost/Starward 两个项目的代码,在此感谢这些项目的作者和贡献者。

About

一个自动下载和管理米哈游游戏 PC 端更新包的工具 | A tool for automating the downloading and management of packages for miHoYo PC games

Resources

License

Stars

Watchers

Forks