1.前言
没有前言,这篇教程参考作者官方文档搭建绪山真寻bot,可爱捏。
功能也很多哦!
2.项目地址
GitHub地址:HibiKier/zhenxun_bot: 基于 Nonebot2 和 go-cqhttp 开发,以 postgresql 作为数据库,非常可爱的绪山真寻bot (github.com)
帮助文档地址:绪山真寻Bot (hibikier.github.io)
本文基本参考上面帮助文档,稍微添加了一点细节。小伙伴们有啥问题可以去看看官方文档哦!搭建中的提示图片夜梦过段时间加上(咕咕咕)
3.搭建准备
夜梦这里采用Ubuntu22.04版本安装。
PS:夜梦折腾了一下午已经成功了,并且配置好了基本的API,所以下面的过程应该不会有太大问题。
ERROR了的话当我没说- 一个QQ号(拿小号!)
- 一台服务器
- 稍微了解一点Linux命令
- 一定的百度/bing/Google的能力
- 面对ERROR不放弃的耐心和决心
自建可能会遇到各种花里胡哨的麻烦,如果没有一些基础的话,前面可是困难重重啊少年
4.安装go-cqhttp
4.1下载
go-cqhttpGitHub地址:https://github.com/Mrs4s/go-cqhttp
release地址:Releases · Mrs4s/go-cqhttp (github.com)
这里我们选择这个:https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.1/go-cqhttp_linux_amd64.tar.gz
我们先新建一个文件夹,方便后面的管理:
mkdir zhenxunbot
cd zhenxunbot
再建一个文件夹,用来放go-cqhttp:
mkdir gocq
cd gocq
然后把go-cqhttp下载到这个文件夹中:
wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.2.0/go-cqhttp_linux_amd64.tar.gz
然后解压文件到这个文件夹中:
tar -zxvf go-cqhttp_linux_amd64.tar.gz #名字不一样的话自己改改哈
4.2配置
解压后会得到go-cqhttp
,我们运行它
./go-cqhttp
首次运行会让你选择通信方式,选择 3
(反向 Websocket 通信),会生成一个配置文件config.yml
然后我们按ctrl+c
退出
这个时候我们修改config.yml
文件:
vim config.yml
然后按i
进入修改模式(后面也一样):
1.找到uin: 123456
修改为你自己的qq机器的账号,比如uin: 654321
2.找到password:''
,在''
中填入你的密码。
3.然后,我们向下翻,找到并修改universal
:
universal: ws://your_websocket_universal.server
修改为universal: ws://127.0.0.1:8080/onebot/v11/ws/
按esc
后,输入:wq
保存退出(后面也一样)。
4.3启动
退出后,我们输入在gocq
文件夹中,输入./go-cqhttp
运行。
按照提示选择验证后,登录进入账号。
成功后会提示警告CONNECTION REFUSED
,别担心,这些提示将在完成真寻启动时消失。
4.安装Postgresql数据库
4.1安装
直接命令行输入:
apt update
apt install postgresql postgresql-contrib
创建数据库和用户(依次输入):
sudo su - postgres # 切换用户
psql
# 用户名↓ # 密码↓
# CREATE USER uname WITH PASSWORD 'zhenxun'; # 创建用户(可不执行)
#密码↓
alter user postgres with password 'zhenxun_bot'; # 修改postgres的密码
# 数据库名称↓ 所有者(用户名)↓
CREATE DATABASE zhenxun_bot OWNER postgres; # 创建数据库
然后退出数据库
exit
Postgresql
的数据库配置,马上要安装真寻了捏 4.2配置外网连接(可省略)
夜梦这里就不写了,需要的小伙伴自己看官方文档哦!
安装Postgresql数据库(Ubuntu) | 绪山真寻Bot (hibikier.github.io)
5.安装真寻Bot
5.1下载依赖
咱这里回到主目录下新建一个文件夹放bot的文件:
cd .. #退回到zhenxunbot目录下
mkdir bot
从 HibiKier / zhenxun_bot (opens new window) clone代码:
git clone https://github.com/HibiKier/zhenxun_bot.git
cd zhenxun_bot
5.2安装依赖
安装依赖包,依次执行以下内容:
pip3 install poetry # 使用poetry管理python包
poetry install # 安装依赖
poetry shell # 进入虚拟环境
playwright install chromium
playwright install-deps chromium
5.3设置超级用户
设置超级用户,打开 .env.dev
文件,在SUPERUSERS
中添加自己的QQ:
vim .env.dev
将SUPERUSERS=["123456789"]
中修改成自己的主人(超级管理员)QQ号
5.4填写数据库数据
进入 configs
目录并打开 config.py
文件填写数据库数据。
如果你从开头到现在都跟着夜梦的教程进行的,那么你只需要将:
bind: str = "" # 数据库连接链接
sql_name: str = "postgres"
user: str = "" # 数据用户名
password: str = "" # 数据库密码
address: str = "" # 数据库地址
port: str = "" # 数据库端口
database: str = "" # 数据库名称
修改为:
bind: str = "" # 数据库连接链接
sql_name: str = "postgres"
user: str = "postgres"
password: str = "zhenxun_bot"
address: str = "127.0.0.1"
port: str = "5432"
database: str = "zhenxun_bot"
如果上面在填写数据库的时候修改了部分信息,那么就按照你修改的来填写。
5.5启动真寻
然后我们回到zhenxun_bot的目录下。(有 bot.py 文件的目录)
然后我们就可以启动真寻酱了:
python3 bot.py
首次启动会下载资源,时间较久,请耐心等待。
有报错也不用管 (反正夜梦也不会解决)
启动完成后,会在 configs
和 data/configs
目录下生成各种配置文件,我们按需修改即可,通常只是填写API接口。夜梦会在后面演示填写一些。
但是!
我们这里只是启动了zhenxun_bot,还没启动go-cqhttp呢,如果想要同时启动这两个并且保持持久化运行,我们需要用到screen
。
6.持久化运行
6.1安装screen
apt install screen
6.2创建会话——zhenxun_bot
在随便哪个目录下运行:
screen -S zhenxun
创建一个screen给真寻。
进入到zhenxun_bot
目录下。
运行:
poetry shell
python3 bot.py
然后按CTRL+A+D
退出screen即可!
6.3创建会话——gocq
进入我们的gocq
文件夹后,输入
screen -S gocq
然后输入:
./go-cqhttp
即可运行!
再按CTRL+A+D
退出screen。
到这里,我们机器人的配置就完成了~
6.4重回会话
使用以下命令恢复会话:
screen -r zhenxun #后面就是你创建screen的名字
7.检查运行情况
在没有修改默认端口的情况下,输入:
lsof -i:8080
可以查看真寻是否在线,显示下面四条信息说明成功运行了。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
go-cqhttp 1789 root 16u IPv4 31676 0t0 TCP localhost:38638->localhost:http-alt (ESTABLISHED)
go-cqhttp 1789 root 21u IPv4 27364 0t0 TCP study:34282->120.232.130.13:http-alt (ESTABLISHED)
python3 2345 root 20u IPv4 32621 0t0 TCP localhost:http-alt (LISTEN)
python3 2345 root 22u IPv4 31677 0t0 TCP localhost:http-alt->localhost:38638 (ESTABLISHED)
8.修改config.ymal
8.1修改config.ymal
这里夜梦推荐使用XFTP进行本地化操作。
在使用XFPT连接到服务器后,我们进入到/zhenxunbot/zhenxun_bot/configs/文件夹中,右键使用记事本编辑config.ymal文件。
然后小伙伴们应该都会的,记事本都会用的吧,改完直接CTRL+S保存就行。
夜梦推荐修改的有(自己到网站注册获取API的):
如果想要使用天气插件,还需要在plugins
文件夹中找到weather
文件夹,进入后用记事本编辑data_source
文件。需要修改的位置在else中,先到yiketianqi.com注册一个账号,然后找到自己的APPID和APPSECRET,填入下方的else中就好了:
else:
data_json = (
await AsyncHttpx.get(
f"https://v0.yiketianqi.com/api?unescape=1&version=v91&appid=APPID&appsecret=YOURSECRET&ext=&cityid=&city={city[:-1]}"
)
8.2重启真寻酱
分别回到两个screen中按CTRL+C暂停运行,然后按照上面的指令重新运行启动一遍就好了。