type
status
date
slug
summary
tags
category
icon
password
title: 在Linux系统部署明日方舟AmiyaBot群聊机器人 date: 2023.04.04 17:50 tags: QQ机器人 description: 在Linux系统部署明日方舟AmiyaBot群聊机器人
因为tx的某些操作,此方法大概率已无法使用
写这篇文章有两个目的,一是作为学习笔记,方便在下次重新部署时复习使用。二是算是个不成熟的教程吧,但是整体流程也是从别人哪里学来的其实是在家闲得无聊找点事情做
仅展示没有遇到错误的情况如果遇到报错,请先通过搜索引擎搜素遇到的情况以及报错文本或者查看官方网站中的常见问题以及官方频道
首先,我也是个小白,遇到感兴趣的东西就喜欢鼓捣一下,有什么写错的地方欢迎指正。我是根据官方文档以及Initial-heart大佬的教程才完成部署。只不过大佬的教程是在Windows系统下部署,思路是一样的,本文只是在linux系统下部署。
在开始之前先介绍一下我的部署环境以及使用的工具
使用阿里云服务器部署,操作系统:Ubuntu 20.04
会用到开源SSH工具Tabby 下载链接: 官网
以及ftp工具FlashFXP 官网 付费软件可以试用,或者:百度云盘(提取码:wya6) 蓝奏云(密码:hfly)
滑动验证助手(安装到手机或模拟器中) Github链接
Tabby使用方法:打开软件后选择设置-配置与连接,点击新配置,选择SSH连接,输入服务器公网IP及用户名密码即可(需注意,在此软件中请不要使用Ctrl+C来复制文本,而是用鼠标左键选中文本后右键点击即可复制。同理粘贴文本直接右键即可。另外当你要输入某个文件名时,只需输入文件名前1或多个字母后,按Tab键即可补全)
FlashFXP使用方法:菜单栏会话-快速连接,输入服务器公网IP及用户名密码即可
接下来正式开始
部署mirai
打开mirai-Release,选择最新版本,找到需要使用的文件

右键-复制链接地址

接下来来到Tabby,输入以下命令,回车运行,新建一个名为mirai的文件夹
mkdir mirai
执行以下命令查看当前目录下的所有文件
ls
可以看到已经新建完成

执行以下命令进入mirai目录,可以理解为双击打开文件夹(cd ..为返回上一级 )
cd mirai

执行以下命令下载mirai,URL为刚才复制的链接
wget URL

等待下载完成

再次执行
ls
命令即可看到下载好的文件

执行以下命令设置文件权限
chmod 777 文件名

设置完后文件名颜色会改变

执行以下命令运行文件开始下载
./文件名

安装过程中会有几个选项需要选择
是否安装Java:选择y安装
Java版本:选择最高版本
JRE & JDK:选择JDK
Binary Architecture:选择x64


稍后还会询问是否下载MCL,选择y下载

看到这个即为安装完成,按任意键退出

ls
可以看到安装好的文件

执行以下命令启动MCL,第一次启动需要初始化,下载运行库和插件

完成后会有这句话

初始化完成,现在可以按Ctrl+C结束进程
接下来来到FlashFXP,按照路径找到这个文件,右键-编辑

将QQ号填到account,密码填到value,protocol推荐填IPAD
注意,冒号和值之间必须有一个空格!
注意,冒号和值之间必须有一个空格!
注意,冒号和值之间必须有一个空格!
填好后保存并关闭

./mcl
再次运行mcl
会看到这样,选中最后一条信息,鼠标右键单击复制,发送到手机上

打开滑动验证助手,把这一串粘贴上去,点下一步

完成验证

复制给出的Ticket,回到电脑

单击右键粘贴,回车

接下来需要短信验证,输入yes,回车

输入短信验证码,登录成功

最后出现这样的提示,mcl启动成功

Ctrl+C关闭
安装mah
打开mah-Release,选择最新版本,找到需要使用的文件

下载到电脑上,接下来使用另一种方法下载安装mah
当然,你也可以继续使用前面介绍的方法,使用
cd
命令移动到mirai/plugins目录下,使用
wget URL
的方式安装
在FlashFXP中,左侧为本机电脑文件,右侧为服务器
将文件从左边拖到右边即可


再次
./mcl
启动mcl,等待初始化完成后Ctrl+C关闭

来到此目录下,空白处右键刷新

进入新出现的文件夹

右键编辑打开setting.yml

删除原有的内容,将下面的内容粘贴进去,改变verifyKey的值
## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook adapters: - http - ws ## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey ## 建议公网连接时开启 enableVerify: true verifyKey: 1234567890 ## 开启一些调式信息 debug: false ## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot ## 开启后,接口中任何 sessionKey 不需要传递参数 ## 若 console 中有多个 bot 登录,则行为未定义 ## 确保 console 中只有一个 bot 登陆时启用 singleMode: false ## 历史消息的缓存大小 ## 同时,也是 http adapter 的消息队列容量 cacheSize: 4096 ## adapter 的单独配置,键名与 adapters 项配置相同 adapterSettings: ## 详情看 http adapter 使用说明 配置 http: host: localhost port: 8080 cors: ["*"] unreadQueueMaxSize: 100 ## 详情看 websocket adapter 使用说明 配置 ws: host: localhost port: 8060 reservedSyncId: -1
部署AmiyaBot
点击上方的配置与连接,会显示连接历史,点击新建一个窗口


分别右键重命名,方便分别控制启动mirai和AmiyaBot

首先第一步,安装git
第一种方法(有可能会出现后续步骤中识别不到git的情况):
使用FlashFXP放到根目录下,或者
wget
命令下载

chmod 777 文件名
给予权限
tar -xzvf 文件名
解压缩
第二种方法:
依次执行
apt-get update -y
apt-get upgrade -y
更新apt工具
apt install git
安装git
git --version
查看已安装的git版本,能查询到即为安装成功
接下来,克隆仓库
git clone <https://github.com/AmiyaBot/Amiya-Bot.git
>

cd Amiya-Bot

pip install -r requirements.txt
安装依赖

playwright install --with-deps chromium
安装 Chromium

来到此目录下右键编辑

将host改为0.0.0.0,authKey密码可不填,但为了安全建议填写

最后
python3 amiya.py
运行
mirai窗口 :
cd mirai
,
./mcl
AmiyaBot窗口:
cd Amiya-Bot
,
python3 amiya.py
两边都启动成功后进入下一步,连接控制台
连接控制台
首先来到服务器控制台(以阿里云为例),选择实例进入详情

安全组-配置规则

点击手动添加,端口范围设置为8088/8088,授权对象设置为0.0.0.0/0,保存
保险起见也在本地放开8088端口,具体操作为打开控制面板,选择防火墙

高级设置

入站规则-新建规则

选择端口

选择TCP,下方填写8088,确定保存

服务地址为http://服务器公网IP:8088,密钥为server.yaml中填写的authKey

选择实例管理

按照下图配置(可控实例可填可不填,内容为你的群号)

完成后是这个样子

接下来就可以到插件商店安装需要的插件了,每个插件都会有说明如何配置和使用

好了,现在可以在群里或私聊和兔兔互动了
虽然现在已经可以正常运行了,但是只要关闭Tabby,进程也会随之关闭。那么,总不能电脑一直不关机且运行Tabby吧。那么,解决方法就是接下来要介绍的——screen
screen保活
如果发现接下来的命令无法执行,那可能是系统还未安装screen,Ubuntu系统执行以下命令安装
apt-get install screen
首先执行以下命令创建一个名为mirai的会话
screen -S mirai

执行之后看起来好像没有发生什么变化,实际上screen已经在运行了
接下来执行
./mcl
启动mcl,启动完成后按下Ctrl+A+D,这时候会话会被暂时中断,但是会话中执行的命令不会被中断。
同理,使用
cd
命令移动到AmiyaBot目录下,创建名为AmiyaBot的会话,执行
python3 amiya.py
启动amiya.py,再次按下Ctrl+A+D中断会话。现在,可以随时关闭Tabby了,程序会一直在运行。

学会了如何中断会话,那么如何恢复会话呢?
首先
screen -ls
查看会话列表,
screen -r 会话名称
或者
screen -r id号
就可以恢复会话了。

关闭会话:
exit
剩余内容(大概率不写):
1.Nginx 反向代理加密连接,可参考(此教程)
2.视频版
3.插件中公招和ChatGPT的配置
很多内容都来自于互联网以及自己瞎鼓捣,不保证100%正确,如有错误和遗漏欢迎指出
PS:可能是因为我还装了宝塔面板的原因吧,访问控制台总是会提示接口请求失败。不太想继续折腾了,就这样吧,这篇文章应该也不会再更新了。
- 作者:Ikarai
- 链接:https://ikaraii.eu.org/article/amiyabot
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。