作者 原文传送
littley www.littley.top

简介

NoneBot 是一个基于 酷Q 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。

软件安装

  • 安装 NoneBot 库,NoneBot github地址为:https://github.com/richardchien/nonebot
pip install nonebot
  • 安装酷Q 软件和 HTTP API 插件
    酷Q 软件可以直接到官网下载,https://cqp.cc/t/23253,本教程使用的是小I版
    HTTP API 插件下载地址 https://github.com/richardchien/coolq-http-api/releases
    首先将下载好的 HTTP API 插件放到 app 目录下,然后双击 CQA.exe 文件,输入机器人对应的 QQ 号和密码,登陆之后,在应用管理中,启动 HTTP API 插件。
    三、配置 HTTP API 插件
    进入酷Q 的 data/app/io.github.richardchien.coolqhttpapi/config/ 目录,有一个.json 的文件,user-id 为刚刚登陆的 QQ 号。修改这个文件的如下配置

构建应用程序

nonebot 的官方文档地址:https://none.rclab.tk/guide/getting-started.html,
下面我们先跑一下官网上的基础例子,

import nonebotif __name__ == "__main__":nonebot.init()nonebot.load_builtin_plugins()nonebot.run(host='127.0.0.1', port=8080)

运行该程序,我们可以在控制台看到如下日志:

可以看到现在程序运行在了本地的 8080 端口,而且本地的 4081和 4080 端口也连接到了本服务,就是我们在 HTTP API 插件的配置文件中做的配置

 "ws_reverse_api_url": "ws://127.0.0.1:8080/ws/api/","ws_reverse_event_url": "ws://127.0.0.1:8080/ws/event/",

现在我们通过另一个qq向酷q登录的qq号发送如下内容:

/echo 你好

附图

控制台内容如下:
# 增强机器人功能之配置文件

增加 config.py 文件,输入内容如下:

from nonebot.default_config import *SUPERUSERS = {123456}#1
COMMAND_START = {'', '/', '!', '/', '!'}
HOST = '0.0.0.0'
PORT = 8080

SUPERUSERS:是配置一个超级 QQ 用户,我们可以为这个超级用户配置一些特殊的操作;
COMMAND_START:是配置命令起始字符,我们增加了空字符串,所以不需要任何起始字符也能调用命令;
另外就是配置了 host 和 端口 port。

然后我们就可以修改原来的文件为:

import nonebot
import configif __name__ == "__main__":nonebot.init(config)nonebot.load_builtin_plugins()nonebot.run()

qq机器人demo之 每日一句

我们使用金山词霸的 API 获取每日一句内容,http://open.iciba.com/dsapi/

def get_content():url = 'http://open.iciba.com/dsapi/'res = requests.get(url)content_e = res.json()['content']content_c = res.json()['note']return [content_c, content_e]

这样就获取到一个”每日一句“的列表了。

编写自己的插件

创建一个 plugins 文件夹,在里面创建 daily.py 文件,编写如下代码:

from nonebot import on_command, CommandSession2from utils import getdata@on_command('daily', aliases=('每日一句',))async def daily(session: CommandSession):daily_send = await get_daily()await session.send(daily_send[0])await session.send(daily_send[1])async def get_daily():daily_sentence = getdata.get_content()return daily_sentence

使用 on_command 装饰器声明一个命令处理器,声明两个命令,分别是 ”daily“ 和 ”每日一句“,当用户向本机器人发送这两个命令时,就会自动调用 daily 这个函数,并且发送对应的消息。
而 get_daily 函数,就是调用金山词霸的 API 函数,来获取内容。
最后修改主文件内容,加载自己编写的插件

import nonebot
import config
from os import pathif __name__ == "__main__":nonebot.init(config)nonebot.load_plugins(path.join(path.dirname(__file__), 'plugins'), 'plugins')nonebot.run()

接下来我们测试一下这个简单的机器人效果如何

完整代码

bot.py

import nonebot
import config
from  os import path
if __name__ == '__main__':nonebot.init(config)nonebot.load_plugins(path.join(path.dirname(__file__), 'plugins'), 'plugins')nonebot.run()#nonebot.run(host='127.0.0.1', port=8080)

config.py

#!/usr/bin/env python
# encoding: utf-8
from nonebot.default_config import *SUPERUSERS = {317xxxxx67}#qq号
COMMAND_START = {'', '/', '!', '/', '!'}
HOST = '0.0.0.0'
PORT = 8080

/plugins/daily

#!/usr/bin/env python
# encoding: utf-8from nonebot import on_command, CommandSessionimport  requests
@on_command('daily', aliases=('每日一句',))
async def daily(session: CommandSession):daily_send = await get_daily()await session.send(daily_send[0])await session.send(daily_send[1])async def get_daily():daily_sentence = get_content()return daily_sentencedef get_content():url = 'http://open.iciba.com/dsapi/'res = requests.get(url)content_e = res.json()['content']content_c = res.json()['note']return [content_c, content_e]

文章参照: https://cloud.tencent.com/developer/article/1465242

作者 原文传送
littley www.littley.top

NoneBot集成酷q打造qq机器人相关推荐

  1. 利用NoneBot结合酷q打造qq机器人

    项目叙述 Smart QQ在2019年1月13日停止服务了,所以qqbot库不能用了. 所以我们选择利用NoneBot结合酷q打造qq机器人 NoneBot NoneBot 是一个基于 酷 Q 的 P ...

  2. python开发酷q插件_基于python和酷Q的QQ机器人开发实践(1)

    基本框架 (1) 酷Q:目前最常用的QQ机器人软件(尤其是在smartQQ失效以后). (2) 酷Q HTTP插件:通过HTTP对酷Q的事件进行上报以及接收HTTP请求来调用酷Q的DLL接口,从而可以 ...

  3. python开发酷q插件gui_基于python和酷Q的QQ机器人开发实践(1)

    基本框架 (1) 酷Q:目前最常用的QQ机器人软件(尤其是在smartQQ失效以后). (2) 酷Q HTTP插件:通过HTTP对酷Q的事件进行上报以及接收HTTP请求来调用酷Q的DLL接口,从而可以 ...

  4. 使用酷q进行图灵机器人聊天以及舔狗功能(小白完全版)

    随着网页QQ(smart qq)停止服务,各种GitHub上面的qq机器人凉了一大半.前几天一直在搞爬网页qq的自动机器人,找不到错误,后来发现是smart qq么得了.所以现在最好用的就是酷q加上一 ...

  5. 【酷QC++】如何利用酷Q制作一个机器人?

    --酷Q Air教程 要想阅读本篇教程,读者需要基本的C++知识以及Visual Studio 2010/2015/2017 首先,需要从官方网站下载软件 https://cqp.cc/t/23253 ...

  6. python酷q机器人_python qq机器人开发 利用Python读取QQ消息

    0.安装nonebot,酷q pip3 install nonebot 在酷q官网下载:https://cqp.cc/t/23253 air图灵版 安装coolq-http-api 网页地址:http ...

  7. 使用酷Q SDK开发QQ机器人

    酷Q SDK下载地址:https://github.com/CoolQ/cqsdk-vc 打开工程,编辑appmain.cpp 将"私聊消息"处的代码 更改为 CQEVENT(in ...

  8. Linux上使用docker运行酷Q机器人

     我们知道酷Q机器人是运行在windows上的,配合图灵机器人的API可以实现QQ或者微信的自动对话,但是如果想让机器人不间断24小时运行,那就需要使用云服务了,并且需要使用docker作为运行的容器 ...

  9. python qq机器人开发 利用Python读取QQ消息

    0.安装nonebot,酷q pip3 install nonebot 在酷q官网下载:https://cqp.cc/t/23253 air图灵版 安装coolq-http-api 网页地址:http ...

最新文章

  1. 牛客挑战赛36 D. 排名估算( “概率论全家桶”,好题,拉格朗日插值求自然数 k 次幂之和)
  2. C++知识点35——使用智能指针的注意事项(上)
  3. android服务的说法错误的是,下面关于Android开发描述有误的一项是()。
  4. u盘修复linux系统,360u盘修复工具官方版u盘pe安装linux系统
  5. Mac OS X下安装和配置Maven
  6. c#中计算三角形面积公式_看着有点迷的三角形面积计算
  7. css --- [练手小项目]样式小结(字体、颜色的语义 清除浮动的使用)
  8. python3正则表达式判断ipv4_Python 正则表达式验证IPv4地址
  9. Windows Server 2012 R2 VDI系列(八)—发布RemoteDesktop
  10. 打造最便捷的异步分页技术(提供下载)
  11. BFS算法和DFS算法(含图解:简单易懂)
  12. 学生信息管理系统—流程图
  13. mysql对象资源管理器_使用对象资源管理器
  14. 拓嘉辰丰:如何抵制拼多多的恶劣买家
  15. 计算机网络谢希仁第七版课后习题答案(第九章)
  16. 脱离.Net Framework运行doNet程序的简单方法
  17. win10 计划任务时提示所指定的账户名称无效解决方法
  18. form表单,账号注册实例
  19. iOS音频播放 (三):AudioFileStream
  20. 支持向量机-《统计学习方法》学习笔记

热门文章

  1. UTF-8 8-bit Unicode Transformation Format 万国码
  2. C# Unicode(万国码)文字转换
  3. python图像拼接_python opencv 图像拼接的实现方法
  4. oracle char转存date,Oracle中char到Date和Number的转换
  5. HDR技术之带参数估计的经典Reinhard色调映射算法的改进(嵌入了亮度均衡/暗光增强算法)
  6. Scala语言简介以及开发环境部署
  7. 复盘会如何开出新花样?10种方式让你开出让人惊喜的复盘会【附复盘问题列表】
  8. c语言折半查找输出坐标,用c语言编写折半查找法
  9. 不同颜色的LED不能直接并联
  10. PyTorch 学习笔记(十一):循环神经网络(RNN)