使用 GO-CQHttp或mirai框架 搭建QQ的機器人


我的博客

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 支持,允許使用其他編程語言的插件

在哪找社區插件

注:此段大部分參考 儷欣佳網絡工作室,歡迎串門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM