# Arondight Adachi-BOT **Repository Path**: yylmzxc/Adachi-BOT ## Basic Information - **Project Name**: Arondight Adachi-BOT - **Description**: 原项目地址https://github.com/Arondight/Adachi-BOT 关于: 这是一个备份 一个在QQ中运行的原神助手 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-10 - **Last Updated**: 2022-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: 原神, QQbot, Bot, genshin-impact, yuanshen ## README # Adachi-BOT ## 说明 ### 关于 本项目提供了一个在 QQ 中运行的原神助手,与之聊天可以方便地查询玩家数据和游戏信息、模拟抽卡、模拟刷圣遗物,以及一些其他的[功能](https://github.com/Arondight/Adachi-BOT#%E5%8A%9F%E8%83%BD)。[原项目](https://github.com/SilveryStar/Adachi-BOT)的[该版本](https://github.com/SilveryStar/Adachi-BOT/tree/ver1.4.6)已经不再维护,此项目当前会持续更新。 请抵制任何形式使用该项目盈利的行为,如有需要请自行(或与朋友共同)搭建一个。如果你很喜欢本项目可以去[打赏原作者](https://afdian.net/@SilveryStar),我不需要赞助。 ### 文档 1. 常见问题请参阅 [FAQ](https://github.com/Arondight/Adachi-BOT/issues?q=label%3Adocumentation) 。 2. 资源文件提交请查阅[《资源制作》](docs/资源制作.md)。 3. 插件开发请查阅[《开发指引》](docs/开发指引.md)。 ### 开发 1. 代码提交前运行 `npm run code-check` 进行检查确保无报错,并运行 `npm run code-format` 进行格式化。 2. 代码自测完毕后发起 [Pull request](https://github.com/Arondight/Adachi-BOT/pulls) 合入 `dev` 分支。 3. 新功能添加或者功能修改请先发起 [Issue](https://github.com/Arondight/Adachi-BOT/issues) 询问我的意愿,根据沟通结果选择合入本项目或者提交到你账户下的一个 Fork 。漏洞修复无需事先沟通,直接发起 [Pull request](https://github.com/Arondight/Adachi-BOT/pulls) 并描述清楚问题即可。 > 请不要在你的 Fork 中开启下面的 workflow !它们对你没有任何帮助。 > > 1. `Update Node.js modules in dev branch` > 2. `Update Vue.js in dev branch` > 3. `Update resources in dev branch` ## 使用 ### 部署 本项目原则上只做 Linux 系统的支持,所有代码合入主线之前也只在 Linux 上进行测试,推荐使用一个主流的[发行版](https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88)(例如 [CentOS](https://www.centos.org/) )进行部署。如果你执意要在 Windows 系统上进行部署,请参照我在 [FAQ](https://github.com/Arondight/Adachi-BOT/issues?q=label%3Adocumentation) 中写的[《如何在 Windows 系统上进行部署》](https://github.com/Arondight/Adachi-BOT/issues/140),注意虽然这份说明是出自我之手,但是不表示我推荐在 Windows 系统上部署本项目。 #### 准备环境 首先你需要有一份较新的 [Node.js](https://nodejs.org/en/download/) ,本项目不兼容较旧版本的 Node.js 。 ```sh echo 'export N_NODE_MIRROR="https://mirrors.ustc.edu.cn/node/"' | tee -a ~/.bashrc echo 'export N_NODE_DOWNLOAD_MIRROR="https://mirrors.ustc.edu.cn/node/"' | tee -a ~/.bashrc source ~/.bashrc curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | sudo -E bash -s lts sudo --preserve-env=PATH env npm install -g n sudo --preserve-env=PATH env n lts ``` > 1. 建议提供一个内存和交换空间容量**总和**达到 `1.5 GiB` 的 Linux 环境进行部署,以运行无头浏览器。 > 2. 不要遗漏 `tee` 命令的 `-a` 选项,否则你的 `~/.bashrc` 将被破坏。 #### 克隆项目 ```sh git clone https://github.com/Arondight/Adachi-BOT.git cd ./Adachi-BOT/ ```
使用国内镜像克隆本项目 如果你访问 GitHub 的速度很慢,那么请使用下面的命令克隆本项目的镜像。 ``` git clone https://gitcode.net/iSpeller/Adachi-BOT.git ```
#### 安装依赖模块 你需要使用 `npm` 命令安装所需的依赖模块,但是因为 [Puppeteer](https://github.com/puppeteer/puppeteer.git) 在安装过程中具有特殊性,所以整个安装过程有了两种思路,你可以在下面的安装方法中任选其一。 ##### 其一,(推荐)使用系统自带的 Chromium
这样做的好处有三个。 1. 包管理器会提供 Chromium 安装和运行所需要的依赖。 2. 包管理器会提供 Chromium 安全和功能更新。 3. 不需要在系统里装多份 Chromium 浏览器。
你要做的是。 1. 用包管理器安装 Chromium ,然后找到它的二进制 ELF 文件路径。 2. 配置环境变量 `PUPPETEER_EXECUTABLE_PATH` 为这个路径,然后配置环境变量 `PUPPETEER_SKIP_CHROMIUM_DOWNLOAD` 为 `true` 。 这样 Puppeteer 就可以使用系统自带的 Chromium 了。这里以 CentOS 为例,上面两个步骤可以用转化为以下 Bash 命令。 ```sh sudo yum -y install epel-release sudo yum -y install chromium cp -v ~/.bashrc{,-backup} echo 'export PUPPETEER_EXECUTABLE_PATH="/usr/lib64/chromium-browser/chromium-browser"' | tee -a ~/.bashrc echo 'export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"' | tee -a ~/.bashrc source ~/.bashrc npm install ``` > 1. 其中 `/usr/lib64/chromium-browser/chromium-browser` 是你的 Chromium 浏览器 ELF 文件路径,而**非启动脚本或其链接**的路径,具体请参照 [FAQ](https://github.com/Arondight/Adachi-BOT/issues?q=label%3Adocumentation) 中的[《Linux 下如何找到 Chromium 的二进制 ELF 文件路径》](https://github.com/Arondight/Adachi-BOT/issues/465)。 > 2. 不要遗漏 `tee` 命令的 `-a` 选项,否则你的 `~/.bashrc` 将被破坏。 ##### 其二,让 npm 为你安装一个 Chromium 这需要你的系统有访问国际互联网的能力,如果可以访问,直接执行以下命令。 ```sh npm install ``` 如果无法访问,那么你需要通过任意合法途径获得一个可以访问国际互联网的 `http` 代理,然后执行以下命令。 ```sh npm_config_proxy=http://<代理地址>:<代理端口> npm install ``` > 注意使用此方法安装 Chromium ,你需要自行解决它的运行依赖问题(例如缺少动态库)。 ### 配置 首次配置,进入本项目所在的目录 `./Adachi-BOT/`,执行以下命令从 `./config_defaults/` 下复制默认配置文件 `setting.yml` 和 `cookies.yml` 到 `./config/` 中。 ```sh cp -iv ./config_defaults/{setting,cookies}.yml ./config/ ``` 然后需要编辑以下文件,根据注释填入合适的配置。 | 文件 | 作用 | | ------------------------------------------ | ------------- | | [setting.yml](config_defaults/setting.yml) | 基本配置选项 | | [cookies.yml](config_defaults/cookies.yml) | 米游社 Cookie | > 1. 你也可以从 `./config_defaults/` 下复制更多的文件到 `./config/` 来进行自定义配置。但是有些配置文件如果你不想自己维护,那就不要把它们放到 `./config/` 下。请详细阅读相关配置文件中注释的说明。 > 2. 你可以在 [yamlchecker.com](https://yamlchecker.com/) 网站上检查你写的配置文件语法是否正确,只需要将配置文件的内容复制到文本框中即可。 > 3. 当前任何配置文件的更改都需要重启机器人方可生效。 ### 运行 进入本项目所在的目录 `./Adachi-BOT/` 。 | 动作 | 命令 | | ------------ | ------------------- | | 初始化 | `npm run init` | | 启动 | `npm run start` | | 重启 | `npm run restart` | | 停止 | `npm run stop` | | 允许开机启动 | `npm run startup` | | 禁止开机启动 | `npm run unstartup` | | 查看状态 | `npm run info` | | 查看日志 | `npm run log` | > 1. 首次运行必须**进行初始化**以完成 QQ 的新设备认证,随后按下组合键 `Ctrl+C` 停止,此时初始化完成。 > 2. 需要启动一次后才可以允许、禁止开机启动。 ### 更新 进入本项目所在的目录。 #### 检查更新 ```sh ./scripts/is_there_an_update_available.sh ``` #### 进行更新 ```sh git pull -p npm install ``` #### 查看配置文件变更 ```sh ./scripts/whats_updated_in_the_configuration_files.sh ``` > 你可以使用 [Meld](http://meldmerge.org/) 把 `./config_defaults/` 中的变更合并到 `./config/` 里。 #### 重启机器人 ```sh npm run restart ``` ## 功能 ### 所有功能 > 具体命令请查看[这里](config_defaults/command.yml),一些只供管理者使用的主人命令请查看[这里](config_defaults/command_master.yml)。 | 功能 | 形式 | 配置选项 | 命令开关 | 管理者命令 | | ----------------------------------- | -------- | -------- | -------- | ---------- | | 展示米游社、 UID 或者群友的游戏账号 | 插件 | ❌ | ✔️ | ❌ | | 展示米游社、 UID 或者群友的深渊战绩 | 插件 | ❌ | ✔️ | ❌ | | 米游社账号绑定和改绑 | 插件 | ❌ | ✔️ | ❌ | | 圣遗物掉落和强化 | 插件 | ❌ | ✔️ | ❌ | | 圣遗物截图评分 | 插件 | ❌ | ✔️ | ❌ | | 展示角色官方数据 | 插件 | ❌ | ✔️ | ❌ | | 抽卡(支持定轨) | 插件 | ❌ | ✔️ | ❌ | | 今日素材、周本素材 | 插件 | ❌ | ✔️ | ❌ | | 吃什么、喝什么 | 插件 | ❌ | ✔️ | ❌ | | 点歌 | 插件 | ❌ | ✔️ | ❌ | | 掷骰子 | 插件 | ❌ | ✔️ | ❌ | | 求签 | 插件 | ❌ | ✔️ | ❌ | | 主人和其他好友或群聊天、发送广播 | 插件 | ❌ | ❌ | ✔️ | | 查看、搜索和统计添加的好友和群 | 插件 | ❌ | ❌ | ✔️ | | 群广播和好友广播 | 插件 | ❌ | ❌ | ✔️ | | 查看宿主系统状态 | 插件 | ❌ | ❌ | ✔️ | | 报告无效 Cookie | 插件 | ❌ | ❌ | ✔️ | | 其他管理功能和权限控制开关 | 插件 | ❌ | ❌ | ✔️ | | 停止响应指定群 | 自有功能 | ❌ | ✔️ | ❌ | | 米游社新闻推送 | 自有功能 | ✔️ | ✔️ | ❌ | | 随机复读群信息 | 自有功能 | ✔️ | ❌ | ❌ | | 一定时间后撤回机器人发送的群消息 | 自有功能 | ✔️ | ❌ | ❌ | | 自我介绍 | 自有功能 | ✔️ | ❌ | ❌ | | 上线通知 | 自有功能 | ✔️ | ❌ | ❌ | ### 功能示例 请见 Wiki 中的[《功能示例》](https://github.com/Arondight/Adachi-BOT/wiki/%E5%8A%9F%E8%83%BD%E7%A4%BA%E4%BE%8B)。 ## 致谢 感谢以下人员以及未提及的[贡献者](https://github.com/Arondight/Adachi-BOT/graphs/contributors)们,你们让一切变得更好了。 | 人员 | 贡献 | | ----------------------------------------------- | ----------------------------------------------------- | | [490720818](https://github.com/490720818) | [网页部分](src/views)的维护,编写了深渊查询的原始版本 | | [Mark9804](https://github.com/Mark9804) | [网页部分](src/views)的主程,贡献了诸多资源文件 | | [SilveryStar](https://github.com/SilveryStar) | 编写了项目的原始版本,提供了大量资源文件 | | [Xm798](https://github.com/Xm798) | 贡献了诸多资源文件 | | [buzhibujuelb](https://github.com/buzhibujuelb) | 添加了武器定轨机制,美化了抽卡效果 | | [ixCiel](https://github.com/ixCiel) | 优化了 Cookie 池使用逻辑 | > 名单先后顺序根据账号首字母排列。 ## 许可 [MIT License](LICENSE) 。