前言:
群里各種大佬的機器人功能花里胡哨,讓我很是眼饞,所以自己也去搞了個酷Q機器人來玩玩。
但是如果用普通的windows版的機器人的話,就得保證電腦24小時不關機才能運行,所以想辦法在雲服務器上弄了一套Dokcer容器的機器人鏡像。
在論壇上,有很多大佬寫了各種的插件,但是找了一圈有的插件沒有維護,所以可能有些問題。
最后找到了一款神級的插件 -- cqhttp:這款插件通過HTTP或WebSocket對酷Q的時間進行上報以及接受請求來調用酷Q的DLL接口,從而可以使用其他語言來編寫酷Q。
然后又找到了大佬基於酷Q寫的python異步框架NoneBot,它會對 QQ 機器人收到的消息進行解析和處理,並以插件化的形式,分發給消息所對應的命令處理器和自然語言處理器,來完成具體的功能。
有了這兩個,我們就能自己寫插件來處理各種接受到的消息了。
參考的網址有如下:
1.https://cqhttp.cc/docs/4.14/#/ --cqhttp插件文檔
2.https://nonebot.cqp.moe/guide/ --NoneBot框架文檔
安裝過程:
一.准備工作
1.Linux服務器
首先我們需要一台linux服務器,這里我用的是免費白嫖半年的阿里雲服務器。正常來說我是把安全組的所有端口都打開了,因為反正這個服務器就用來跑這一個東西,也不管其他的了,有些端口我們后面會用到,所以直接省事了。
2.連接工具
這里我使用的finalshell,我覺得還是挺好用的,與windows主機進行文件傳輸和修改還是挺方便的。
二.Docker的安裝
我是Ubuntu系統,所以參考的如下的安裝過程:
https://yq.aliyun.com/articles/658984
然后還有其他系統的安裝過程:
https://www.runoob.com/docker/ubuntu-docker-install.html
網上教程都挺多的,我這里就留個傳送門。
三.Docker鏡像coolq/wine-coolq的配置
我們知道,docker只是一個容器,可以理解為我們windows上常用的VMware虛擬機,現在我們容器有了,需要的就是鏡像了。
雖然說酷Q官方也已經有了Docker鏡像,但是為了省事,還是可以直接用大佬維護的已安裝並啟用了插件的鏡像。
地址:https://cqhttp.cc/docs/4.14/#/
配置文件/root/coolq/app/io.github.richardchien.coolqhttpapi/config/****.ini
[2947034436] serve_data_files = yes post_url = http://127.0.0.1:9001 ws_reverse_api_url=ws://127.0.0.1:8080/ws/api/ ws_reverse_event_url= ws://127.0.0.1:8080/ws/event/ use_ws_reverse= true
***.json配置文件
{ "host": "[::]", "port": 5700, "use_http": true, "ws_host": "[::]", "ws_port": 6700, "use_ws": yes, "ws_reverse_url": "", "ws_reverse_api_url": "", "ws_reverse_event_url": "", "ws_reverse_reconnect_interval": 3000, "ws_reverse_reconnect_on_code_1000": true, "use_ws_reverse": false, "post_url": "", "access_token": "", "secret": "", "post_message_format": "string", "serve_data_files": false, "update_source": "china", "update_channel": "stable", "auto_check_update": false, "auto_perform_update": false, "show_log_console": true, "log_level": "info" }
運行容器的基本配置在官方文檔有:
但是這里是不太完整,下面還有些參數是需要自己加入的,比如如果我用的是pro版本的話,就需要加上額外的COOLQ_URL下載pro版本的。
貼上我的運行配置的文件(有些需要結合文檔自己去修改)
sudo docker run -ti --rm --name cqhttp-test \ --network host \ -v $(pwd)/coolq:/home/user/coolq \ -e VNC_PASSWD=****** \ -p 9000:9000 \ -p 5700:5700 \ -e COOLQ_URL=https://dlsec.cqp.me/cqp-tuling \ -e COOLQ_ACCOUNT=QQ號 \ -e CQHTTP_POST_URL=http://127.0.0.1:9001 \ -e CQHTTP_SERVE_DATA_FILES=yes \ richardchien/cqhttp:latest
更多配置使用可以參考文檔。
四.NoneBot的安裝配置
具體參考文檔就行:https://nonebot.cqp.moe/guide/installation.html
安裝下載還是很簡單的,主要是在python環境里面運行。插件也可以自己跟着文檔教程自己寫。
五.日常使用事項
首先像我日常使用,主要就是放到一個screen里面去運行。
screen -S cq
在當前會話窗口中按Ctrl a +d快捷鍵可以實現分離,這時窗口會彈出[detached]的提示,並回到主窗口。
screen -d name #遠程detach某個session,前提是已經跳出了name窗口
基本上用到的命令有:
-A 將所有的視窗都調整為目前終端機的大小。
-d <作業名稱> 將指定的screen作業離線。
-h <行數> 指定視窗的緩沖區行數。
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-r <作業名稱> 恢復離線的screen作業。
-R 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s 指定建立新視窗時,所要執行的shell。
-S <作業名稱> 指定screen作業的名稱。
-v 顯示版本信息。
-x 恢復之前離線的screen作業。
-ls 顯示目前所有的screen作業。
-wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。
screen -S yourname -> 新建一個叫yourname的session
screen -ls -> 列出當前所有的session
screen -r yourname -> 回到yourname這個session
screen -d yourname -> 遠程detach某個session
screen -d -r yourname -> 結束當前session並回到yourname這個session
一般是先創建一個新的screen,然后運行sudo docker run -ti --rm --name cqhttp-test \(上面容器的這段話)
最后才是運行python3 bot.py。
這樣就能保證機器人24小時的運行啦。