2020/08/29 参考链接:https://blog.sakuya.love/archives/xzz/ 完善一部分教程。

此文用到的项目

准备工作

安装 Python 环境并克隆 XZZ

因为机器人的逻辑部分,也就西 XZZ 是 Python 写的,所以需要 Python 环境

在 Contos 中,安装 python3

1.安装编译相关工具
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
2.下载安装包解压
cd #回到用户目录
wget https://mirrors.huaweicloud.com/python/3.8.5/Python-3.8.5.tar.xz
tar -xvJf  Python-3.8.5.tar.xz
3.编译安装python
mkdir /usr/local/python3 #创建编译安装目录
cd Python-3.8.5
./configure --prefix=/usr/local/python3
make && make install
4.创建软连接
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/local/bin/pip3
5.验证是否成功
python3 -V
pip3 -V

注:如果安装更高的python版本,只需修改wget 后面的地址即可,然后注意执行命令时候的路径等问题。

这里用的是华为云的镜像,官方地址是:https://www.python.org/ftp/python/3.7.5/Python-3.8.5.tar.xz

克隆 XZZ

git clone https://github.com/Si-Huan/XZZ.git

编译或下载 go-cqhttp

编译

克隆仓库

git clone https://github.com/Mrs4s/go-cqhttp.git

编译

cd go-cqhttp && go build

tips: 自备 go 环境 ,参考地址:https://www.jianshu.com/p/39463339c1b3

下载

前往 Releases 页面 下载自己系统对应的版本

安装并启动 Redis 数据库 (可选)

可选但推荐,不然可能有一些服务无法使用

在 Contos 下

yum install epel-release
yum install redis
systemctl enable redis.service --now

tips: 请保持 redis 服务运行在 XZZ 同服务器 6379 端口

开始配置

我们假设你现在的目录结果如下

.
├── bot
│   └── go-cqhttp
└── xzz
    ├── exmple.json
    ├── main.py
    ├── README.md
    ├── req.txt
    ├── route.py
    ├── sample_config.py
    ├── test.py
    ├── worker
    └── zzcore.py

其中 xzz 文件夹下是你第一步克隆的 XZZ

其中 bot 文件夹下的 go-cqhttp 是你在第一步下载或编译的 go-cqhttp 的可执行文件

初始化并配置 go-cqhttp

移步至 bot 文件夹下启动 go-cqhttp

你会看到以下信息,程序会自动退出

[2020-08-02 22:25:17] [WARNING]: 尝试加载配置文件 config.json 失败: 文件不存在 
[2020-08-02 22:25:17] [INFO]: 默认配置文件已生成, 请编辑 config.json 后重启程序.

现在你的目录结果大概是这样

.
├── bot
│   ├── config.json
│   ├── data
│   ├── go-cqhttp
│   └── logs
└── xzz
    ├── exmple.json
    ├── main.py
    ├── README.md
    ├── req.txt
    ├── route.py
    ├── sample_config.py
    ├── test.py
    ├── worker
    └── zzcore.py

我们去编辑 ./bot/config.json

{
    "uin": 1010101010,
    "password": "mima",
    "enable_db": true,
    "access_token": "token",
    "relogin": false,
    "relogin_delay": 0,
    "http_config": {
        "enabled": true,
        "host": "127.0.0.1",
        "port": 5700,
        "post_urls": {"127.0.0.1:5580":"XZZ"}
    },
    "ws_config": {
        "enabled": false,
        "host": "0.0.0.0",
        "port": 6700
    },
    "ws_reverse_servers": [{
        "enabled": false,
        "reverse_url": "ws://you_websocket_universal.server",
        "reverse_api_url": "ws://you_websocket_api.server",
        "reverse_event_url": "ws://you_websocket_event.server",
        "reverse_reconnect_interval": 3000
    }],
    "debug": false
}

需要编辑的字段如下

字段类型说明
uinint64登录用 QQ 号
passwordstring登录用密码
access_tokenstring用于与 XZZ 交互是身份认证
http_configobjectHTTP API 配置,可与上面我给出的配置一致
ws_config.enableboolXZZ 不需要用到 ws, 请设置为 false
ws_reverse_servers.enablebool同上,设置为 false

一会配置 XZZ 需要用到的字段有 access_tokenhttp_config.hosthttp_config.porthttp_config.post_urls

如果 go-cqhttpXZZ 没有运行在同一台服务器上请将 http_config.host 设置为 0.0.0.0http_config.post_urls 设置为 XZZ 运行时监听的端口

配置完成之后我们就可以启动 go-cqhttp 了,启动的时候第一次登陆 QQ 可能需要验证码,按字符画输入即可,之后将 go-cqhttp 切到后台,进行下一步。

可以使用如 screen 这种工具将 go-cqhttp 挂在后台

配置 XZZ

移步至 xzz 文件夹下

创建虚拟环境

python3 -m venv env

激活虚拟环境

source ./env/bin/activate

安装依赖

pip3 install -r req.txt

配置 XZZ

复制一份 sample_config.pyconfig.py,并编辑

ALLWORKERS = ['bbc','bc','bing','echo','mc','music','ping','shi','wolfram','yiyan','help']

APIURL = 'http://127.0.0.1:5700/'

AUTHORIZATION = 'token'

HOST = 'ip'

PORT = 5580

BINGKEY = ''

WOLFRAMALPHAAPPID = ''

LOLIKEY = ''

以上必须要配置的有

  • APIURL 为上文 go-cqhttp HTTP API 所在的地址,与上文 http_config.hosthttp_config.port 有关,如果上面这两个和我设置的一样,那么这儿为 127.0.0.1:5700
  • AUTHORIZATION 与上文 access_token 相同,这儿为 token
  • HOST默认是没有这个选项的,需要自己加上,这里建议填127.0.0.1或者0.0.0.0PORT XZZ 要监听的端口,这儿设置为 5580 ,请保证上文 http_config.post_urls 中的端口与此一致,以便 go-cqhttp 可以访问到 XZZ

其余参数可选

配置完毕之后,启动 XZZ

python3 main.py

和上文 对 go-cqhttp 的处理一样,挂在后台就好了

测试!

在群聊发生 /ping ,bot 是不是回复了 Pong 呢?

另外

XZZ 功能的开发超级方便,如果有兴趣的话,欢迎来给 XZZ 添加功能 ~

https://github.com/Si-Huan/XZZ

其他问题

使用过程中可能遇到的问题,1.帐号登陆不上,提示登陆环境不安全,请开启你的设备锁,登陆时会打开一个认证页面扫描二维码登陆:2.登陆成功后部分消息无法发送,XZZ提示HTTP 1.1 500,bot提示:帐号可能被风控,打开QQ邮箱登陆一下就好了;;3.使用过程中/talk命令无法使用,需要安装ffmpeg了,安装方式:

sudo yum install epel-release
sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel
ffmpeg -version

使用过程中其他问题可以到GitHub给作者提issue. OωO

Last modification:August 30th, 2020 at 09:03 am
如果觉得我的文章对你有用,请随意赞赏