NoneBot+酷Q,打造QQ机器人
NoneBot 是一个基于 酷Q 的 Python 异步 QQ 机器人框架,它会对 QQ 机器人收到的消息进行解析和处理,并以插件化的形式,分发给消息所对应的命令处理器和自然语言处理器,来完成具体的功能。
一 、软件安装
- 安装 NoneBot 库,NoneBot github地址为:https://github.com/richardchien/nonebot
pip install nonebot
安装酷Q 软件
酷Q 软件可以直接到官网下载,https://cqp.cc/t/23253,本教程使用的是 酷Q Air 小i版。
- 安装 HTTP API 插件
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 nonebot if __name__ == "__main__":
nonebot.init()
nonebot.load_builtin_plugins()
nonebot.run(host='127.0.0.1', port=8080)
运行该程序(在普通的IDLE下即可,某些集成环境反而可能报错),我们可以在控制台看到如下日志:
可以看到现在程序运行在了本地的 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/",
# 增强机器人功能之配置文件
增加 config.py 文件,输入内容如下:
from nonebot.default_config import * SUPERUSERS = {QQ号}#
COMMAND_START = {'', '/', '!', '/', '!'}
HOST = '0.0.0.0'
PORT = 8080
SUPERUSERS:是配置一个超级 QQ 用户,我们可以为这个超级用户配置一些特殊的操作;
COMMAND_START:是配置命令起始字符,我们增加了空字符串,所以不需要任何起始字符也能调用命令;
另外就是配置了 host 和 端口 port。
编写自己的插件
创建一个 plugins 文件夹,在里面创建 daily.py 文件,编写如下代码:
from nonebot import on_command, CommandSession
2from 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
完整代码
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 = {qq号}#qq号
COMMAND_START = {'', '/', '!', '/', '!'}
HOST = '0.0.0.0'
PORT = 8080
/plugins/daily.py
#!/usr/bin/env python
# encoding: utf-8 from nonebot import on_command, CommandSession import 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_sentence 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]
NoneBot+酷Q,打造QQ机器人的更多相关文章
- 【酷Q&C++】如何利用酷Q制作一个机器人?
——酷Q Air教程 要想阅读本篇教程,读者需要基本的C++知识以及Visual Studio 2010/2015/2017 首先,需要从官方网站下载软件 https://cqp.cc/t/23253 ...
- 使用酷Q SDK开发QQ机器人
酷Q SDK下载地址:https://github.com/CoolQ/cqsdk-vc 打开工程,编辑appmain.cpp 将“私聊消息”处的代码 更改为 CQEVENT(int32_t, __e ...
- QQ机器人
先说下整体思路1.首先要借助一个QQ 插件,用来接收消息 发送消息2.要用个QQ 小号,这个QQ 你不能用来登,因为他相当于那个机器人3.要借助大神开发的SDK ,就是别人写的底层交互 ,我们只需要关 ...
- 酷Q机器人,QQ机器人使用教程
软件介绍: 酷Q,软件酷Q机器人是一款基于webqq开发的一款自动接收.处理qq消息的软件. 改程序使用易语言编写,精简大量不必要代码,减小了软件体积,优化程序速度,使得酷Q更加轻巧好用. 在消息处理 ...
- 基于酷Q的工作秘书机器人
代码地址如下:http://www.demodashi.com/demo/14617.html 环境准备 名称 版本 Jdk 8 groovy 2.4.12 gradle 4.6 酷Q 5.12.3A ...
- 【酷Q插件制作】教大家做一个简单的签到插件
酷Q插件已经有很多了,社区分享一大堆,不过还是自己写才有乐趣,哈哈.不得不吐槽一下,酷Q竟然不更新了,出了个酷Q pro,还收费!!诶.不过这也影响不了咱写插件的心情,今天教大家写一个酷Q签到插件,虽 ...
- 使用C# 开始第一个QQ机器人
本示例将会使用”嘤鹉学舌”这个小插件的实现来演示如何使用Newbe.Mahua实现第一个机器人插件. 插件功能 自动将发送者的消息回发给发送人,嘤鹉(Parrot,其实是说嘤嘤嘤怪)学舌. 开发环境要 ...
- 酷Q插件_SDK———入门与使用
1.这里使用的是易语言的SDK,所以请看不惯的人自行离开.{wymbf.} 1.2 这里不会直接给你工程,请用动手打代码,动脑思考. 1.3 不知道.不了解酷Q是干嘛的,请访问:https://cqp ...
- Ubuntu16.04安装QQ机器人
Ubuntu安装QQ机器人 看了看现在QQ机器人似乎只有酷Q机器人有Docker可以在linux上运行了 那就k开始装酷Q机器人,资源占用也不是很大,大概占用180M内存吧 安装酷Q HTTP 首先安 ...
随机推荐
- py02_02:pyc的解释
1. Python是一门解释型语言吗? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言 ...
- ios ktvhttpcache 音视频缓存插件使用
1.PodFile 文件增加 pod 'KTVHTTPCache', '~> 2.0.0' 2.在终端 需要先cd到podfile文件所在目录 执行pod install 3.在header ...
- 5 分钟全面掌握 Python 装饰器
♚ 作者:吉星高照, 网易游戏资深开发工程师,主要工作方向为网易游戏 CDN 自动化平台的设计和开发,脑洞比较奇特,喜欢在各种非主流的领域研究制作各种不走寻常路的东西. ! Python的装饰器是面试 ...
- CodeForces 994B Knights of a Polygonal Table(STL、贪心)
http://codeforces.com/problemset/problem/994/B 题意: 给出n和m,有n个骑士,每个骑士的战力为ai,这个骑士有bi的钱,如果一个骑士的战力比另一个骑士的 ...
- 01 - CentOS 中安装Python 2.7.16
准备 下载链接:https://www.python.org/ftp/python/ 下载源码:wget https://www.python.org/ftp/python/2.7.16/Python ...
- Educational Codeforces Round 55 (Rated for Div. 2)E
题:https://codeforces.com/contest/1082/problem/E 题意:给出n个数和一个数c,只能操作一次将[L,R]之间的数+任意数,问最后该序列中能存在最多多少个c ...
- mysql之存储过程(三)
带参数的存储过程: 特别说明: 在游标中是不支持对形参的判断的,外部可以 调用操作: call settlexxxxx_common("1970-11",999); 定义如下: ...
- IMX6Q开发板Linux-QT挂载U盘及TF卡
本文基于:迅为-iMX6开发板Linux-QT挂载U盘及TF卡 如下图所示,qt 启动之后,在超级终端中使用命令“mknod /dev/sda1 b 8 1”创建 U盘的设备节点,如下图所示. 插入 ...
- 2019-2020-1 20199324《Linux内核原理与分析》第四周作业
第三章 MenuOs的构造 一.知识点总结 计算机的三大法宝: 存储程序计算机 函数调用堆栈 中断 操作系统的两把宝剑: 中断上下文的切换(保存现场和恢复现场) 进程上下文的切换 它们都和汇编语言有着 ...
- 计算a^b==a+b在(l,r)的对数Codeforces Round #597 (Div. 2)
题:https://codeforces.com/contest/1245/problem/F 分析:转化为:求区间内满足a&b==0的对数(解释见代码) ///求满足a&b==0在区 ...