我的博客

Go-CQHttp搭建QQ机器人

官方文档在这——>ATRU官方文档

Go-CQHttp + Atri

使用Linux系统部署

需求

  • 服务器一台/带有Linux的机器

  • Python环境版本>=3.8

  • SSH终端工具,推荐Xshell

配置Go-CQHttp

  1. 前往go-cqhttp release下载cqhttp对应的linux服务端go-cqhttp_linux_amd64.tar.gz文件

  2. 使用ssh工具进入服务器,新建cqhttp文件夹

    cd ~

    mkdir cqhttp && cd cqhttp

  3. go-cqhttp_linux_amd64.tar.gz上传到cqhttp文件夹,并且解压这个包

  4. 运行./go-cqhttp,等待出现以下:

此时,按下ctrl+c结束进程,然后修改config.yml

注释里有 // 的需要自己自定义。其他的我也弄不懂,所以建议不要动。

# go-cqhttp 默认配置文件
account: # 账号相关
uin: 1437907718 # QQ账号
password: '' # 密码为空时使用扫码登录
encrypt: false  # 是否开启密码加密
status: 0      # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
relogin: # 重连设置
  delay: 3   # 首次重连延迟, 单位秒
  interval: 3   # 重连间隔
  max-times: 0  # 最大重连次数, 0为无限制
   # 连接服务列表
servers:
 # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
 #- http: # http 通信
 #- ws:   # 正向 Websocket
 #- ws-reverse: # 反向 Websocket
 #- pprof: #性能分析服务器
 # 反向WS设置
- ws-reverse:
     # 反向WS Universal 地址
     # 注意 设置了此项地址后下面两项将会被忽略
    universal:  ws://127.0.0.1:8080/onebot/v11/ws   // 反向 websockets 通信地址,按照我写的就行。
     # 反向WS API 地址
    api: ws://your_websocket_api.server
     # 反向WS Event 地址
    event: ws://your_websocket_event.server
     # 重连间隔 单位毫秒
    reconnect-interval: 3000
    middlewares:
      <<: *default # 引用默认中间件

_config.yml设置好之后,继续运行./go-cqhttp

接下来会出现一个二维码,拿你的机器人qq扫码授权即可。第一次扫码就行,之后无需扫码,除非你动了文件。 虽然会出现黄色字段,但是不用管,等最后设置好nonebot后,就可以连通了:

按下ctrl+c结束进程,并输入 cd ~返回home文件夹。到这,你的cqhttp就配置成功了!

配置atri

传送门:atri 高性能文爱萝卜子,糅杂了各类有趣小功能。

从Github库下载好ATRI-main.zip压缩包

放进你的服务器目录中,然后通过unzip ATRI-main.zip命令解压此压缩包,

我建议把ATRI-main文件夹名称改为main,以方便后期的调试,

再通过cd main进入文件夹,并输入以下命令安装atri所需的依赖:

pip install -r requirements.txt

安装完依赖之后,再修改下文件夹中的config.yml文件,这里我们只做最初的改动:

记得将InlineGoCQHTTPenable改为false。我们暂时采用GO-CQHttpatri分开运行的方式。

BotSelfConfig:

host: "127.0.0.1" # 监听ip,要和cq-http中的设置保持一致。

port: 20000       # 监听端口,要和cq-http中的设置保持一致。

debug: false

superusers: ["1234567890"] # 超级用户qq号码。注意:这不是机器人qq号,这是一个和机器人沟通的账号。

nickname: ["ATRI", "Atri", "atri", "亚托莉", "アトリ"]

command_start: ["", "/"]

command_sep: ["."]

session_expire_timeout: 60

proxy: "" # 请参考文档



InlineGoCQHTTP: # 在atri文件夹内调用cqhttp,这边建议cq-http和atri分开跑比较好呢!

enabled: false

accounts: # 可多个账号,具体请参考文档

  - uin: 1234567890

    password: ""

    protocol: 3



download_domain: "github.com"

download_version: "v1.0.0-rc1"



SauceNAO:

key: ""



Setu:

reverse_proxy: true # 请参考文档

reverse_proxy_domain: "i.pixiv.re"

修改好之后,就可以通过以下命令来启动atri啦!

COPYpython main.py

screen让你的机器人跑起来

安装screen模块:

通过如下命令安装screen

yum install -y screen

screen简单命令

创建一个screen

例如:screen -S [name]

screen -S cqhttp

这样,你就创建好了一个screen,现在按住ctrl a+d来退出,如果你还想查看的话,也可以通过screen -r cqhttp来查看。

查看当前运行中的screen

例如:screen -ls

ubuntu@VM-16-11-ubuntu:~$ screen -ls

There are screens on:

      2183677.cqhttp (03/04/2022 09:55:58 PM)       (Detached)

      2182766.atri   (03/04/2022 09:52:23 PM)       (Detached)

2 Sockets in /run/screen/S-ubuntu.

注意上述命令中的数字2183677.cqhttp,它非常有用,我们可以通过screen -r 2183677的方式来重新加入,也可以通过screen -r cqhttp来进入screen。

销毁一个screen

例如:screen -X -S [name] quit。按上文所述,我们查到cqhttp的数字为2183677,那么我们就可以通过如下方式来杀死这个screen:

screen -X -S 2183677 quit

将atri和cqhttp连通

大体思路:在cqhttp的文件夹内创建一个screen用来运行cqhttp,然后退出当前screen,cd到atri文件夹,仍按照上述步骤操作,这样,cqhttp才能和atri连通。

cd cqhttp

screen -S cqhttp

此时,我们已经开启了cqhttp的screen窗口,这时,我们就可以先通过./go-cqhttp faststartcqhttp运行起来,然后通过ctrl a+d退出当前screen。再然后,进入到atri文件夹内。

cd ~

cd atri

screen -S atri

同样的,atri窗口已经开启,通过python main.py让atri运行,然后ctrl a+d退出。 此时,我们再screen -r cqhttp返回cq的screen,发现已经连接上atri辣! 我们对机器人发一个/ping,机器人便会回复,

注:此段大部分参照Sady's Blog,欢迎去串门

基于mirai框架搭建QQ机器人

mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库。

开始

环境

流程

  1. 访问 iTXTech/mcl-installer

  2. 下载适合你的系统的可执行文件;

  3. 在一个新文件夹存放这个文件,运行它;

  4. 通常可以一路回车使用默认设置完成安装,安装完成后程序自动退出;

  5. 运行 mcl.cmd 启动,成功后会看到绿色的 mirai-console started successfully

初始化

第一次运行 mcl.cmd 时会初始化运行环境。下表说明了各个文件夹的用途。

文件夹名称 用途
scripts 存放启动器的脚本,一般不需要在意他们
plugins 存放插件
data 存放插件的数据,一般不需要在意它们
config 存放插件的配置,可以打开并修改配置
logs 存放运行时的日志,日志默认保留 7 天

插件

  • chat-command: 允许在聊天环境通过以 “/” 起始的消息执行指令

  • mirai-api-http:提供 HTTP 支持,允许使用其他编程语言的插件

在哪找社区插件

注:此段大部分参考 俪欣佳网络工作室,欢迎串门

使用 GO-CQHttp或mirai框架 搭建QQ的机器人的更多相关文章

  1. 【2022.04.19】Docker-compose一键安装mirai,搭建QQ机器人最快方法

    先用官方的脚本安装下docker curl -sSL https://get.docker.com/ | sh 安装docker-compose curl -L "https://githu ...

  2. Mirai框架qq机器人教程 新版

    Mirai框架qq机器人教程 新版 前言 资料列表 1.准备 i. 配置java环境 ii. 配置IDE iii. 下载mirai-console-loader(mcl)作为启动器 2.创建mirai ...

  3. Mirai框架qq机器人教程

    Mirai框架qq机器人教程 0.前言 1. 安装Java 2.安装Mirai启动器 3.下载IDEA或其他编译器 4.创建mirai-console插件项目 4.1 通过git创建 4.2 通过插件 ...

  4. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  5. ABP框架搭建项目系列教程基础版完结篇

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 经过前面十二篇的基础教程,现在终于该做个总结了. 回顾 第一篇,我们建议新手朋友们先通过ABP官网的启动模板生成解决方案,因为这样 ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建    ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2 ...

  7. go服务端----使用dotweb框架搭建简易服务

    使用dotweb框架搭建简易服务 go语言web框架挺多的,所谓琳琅满目,里面也有很多优秀的,比如echo.beego等,但体验下来,总是觉得哪里有点小疙瘩,后来才明白过来,echo太简单,很多日常使 ...

  8. Unity 游戏框架搭建 (三) MonoBehaviour单例的模板

      上一篇文章讲述了如何设计C#单例的模板.也随之抛出了问题: 如何设计接收MonoBehaviour生命周期的单例的模板? 如何设计? 先分析下需求:   1.约束脚本实例对象的个数.   2.约束 ...

  9. Unity 游戏框架搭建 (二) 单例的模板

      上一篇文章中说到的manager of managers,其中每个manager都是单例的实现,当然也可以使用静态类实现,但是相比于静态类的实现,单例的实现更为通用,可以适用大多数情况. 如何设计 ...

随机推荐

  1. bzoj5315/luoguP4517 [SDOI2018]战略游戏(圆方树,虚树)

    bzoj5315/luoguP4517 [SDOI2018]战略游戏(圆方树,虚树) bzoj Luogu 题目描述略(太长了) 题解时间 切掉一个点,连通性变化. 上圆方树. $ \sum |S| ...

  2. JVM的垃圾回收算法有哪些

    常用的垃圾回收算法有如下四种:标记-清除.复制.标记-整理和分代收集. 标记-清除算法从算法的名称上可以看出,这个算法分为两部分,标记和清除.首先标记出所有需要被回收的对象,然后在标记完成后统一回收掉 ...

  3. Struts2里面有什么隐式对象?

    Struts 2.1 的隐式对象 (这些隐式对象都是Map类型) parameters 用于访问请求参数 request 用于访问HttpServletRequest的属性 session 用于访问H ...

  4. REST 和RPC对比?

    1.RPC主要的缺陷是服务提供方和调用方式之间的依赖太强,需要对每一个微服务进行接口的定义,并通过持续继承发布,严格版本控制才不会出现冲突. 2.REST是轻量级的接口,服务的提供和调用不存在代码之间 ...

  5. 怎样在方法里面得到Request,或者Session?

    直接在方法的形参中声明request,SpringMvc就自动把request对象传入.

  6. 什么是 Callable 和 Future?

    Callable 接口类似于 Runnable,从名字就可以看出来了,但是 Runnable 不会返 回结果,并且无法抛出返回结果的异常,而 Callable 功能更强大一些,被线程执 行后,可以返回 ...

  7. volatile 修饰符的有过什么实践?

    一种实践是用 volatile 修饰 long 和 double 变量,使其能按原子类型来读写. double 和 long 都是 64 位宽,因此对这两种类型的读是分为两部分的,第一次 读取第一个  ...

  8. spring 提供了哪些配置方式?

    基于 xml 配置 bean 所需的依赖项和服务在 XML 格式的配置文件中指定.这些配置文件通常 包含许多 bean 定义和特定于应用程序的配置选项.它们通常以 bean 标签开 头. 例如: &l ...

  9. CountDownLatch和CyclicBarrier:如何让多线程步调一致?

    案例:对账系统的业务是这样的,用户通过在线商城下单,会生成电子订单,保存在订单库:之后物流会生成派送单给用户发货,派送单保存在派送单库.为了防止漏派送或者重复派送,对账系统每天还会校验是否存在异常订单 ...

  10. 顺利通过EMC实验(17)