zoukankan      html  css  js  c++  java
  • 在Linux云服务上运行酷Q机器人并DIY自己的功能

    前言:

    群里各种大佬的机器人功能花里胡哨,让我很是眼馋,所以自己也去搞了个酷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小时的运行啦。

  • 相关阅读:
    Windows32位与64位操作系统的区别【转】
    【C#多线程详解】
    auto_ptr
    #if 1......
    vector 向量容器
    删除可视图中的类不能彻底避免它重新被编译
    _tWinMain 与wWinMain 区别
    explicit 用法
    转:atoi函数的实现
    string类的实现
  • 原文地址:https://www.cnblogs.com/wushengyang/p/12575908.html
Copyright © 2011-2022 走看看