酷Q机器人

from cqhttp import CQHttp
from pprint import pprint
import tuling  #这里是图灵的接口
bot =CQHttp(api_root='http://127.0.0.1:5700')

commands={}

def command(name):
    def decorator(func):
        commands[name] = func
        return func
    return decorator

@command('echo')
def echo(ctx,arg):
    return {'reply':arg}

@command('喵一个')
def echo(ctx,arg):
    return {'reply':'喵~'}

#私聊消息
@bot.on_message('private')
def handle_msg(ctx):
    pprint(ctx)
    msg : str =ctx['message']
    sp = msg.split(maxsplit=1)
    if not sp:
        return
    cmd,*args = sp
    arg = ''.join(args)

    handler = commands.get(cmd)
    if handler:
        return handler(ctx,arg)
    else:
        replies = tuling.get_reply(msg)
        if replies:
            return {'reply':replies[0]}

bot.run(host='127.0.0.1',port=8050)

以上是本地运行的代码


正常按照docker安装:
docker pull coolq/wine-coolq 安装酷Q镜像
mkdir /root/coolq-data # 任意路径均可 在任意目录下新建一个文件夹

docker run --name=coolq --rm -p 8080:9000 -p 5700:5700 -v /root/coolq-data:/home/user/coolq -e VNC_PASSWD=12345678 -e COOLQ_ACCOUNT=123456 coolq/wine-coolq 运行docker镜像

–rm可以换成-d,就可以以服务的形式在后台运行

docker start coolq # 启动
docker stop coolq # 终止
docker logs coolq # 查看

-p 8080:9000 可以把8080改到任意端口,用于使用浏览器连接docker的桌面。
-p 5700:5700 可以把前一个5700改成任意端口,用于连接酷Q的HTTP API。
-v /root/coolq-data 可以改成之前新建的文件夹,用于做文件夹储存位置的映射
VNC_PASSWD=12345678 可以自己设置密码,用于连接docker的远程桌面
COOLQ_ACCOUNT=123456 登录的机器人的QQ号


这里有一个问题,那就是用docker的话,很有可能连接不成功.。。。就是即便机器人启动了,但是向机器人发消息,机器人也不会按照设定的程序回复

解决办法:

运行下面这段程序,也就是说,将docker的网络与虚拟机的网络桥接到一起,这时候docker里面用到的端口,就会变成虚拟机的端口,不会再进行映射。
docker run --name=coolq -d --network host -v /tools/coolq:/home/user/coolq -e VNC_PASSWD=Dt1qa2ws -e COOLQ_ACCOUNT=1684349890 coolq/wine-coolq

你可能感兴趣的:(发布环境)