引言
对于使用python进行频道官方机器人开发而言,市面上确实有不同的sdk可以选用,但其很多只提供异步asyncio+类继承的开发方式,对于不会相关技巧的朋友们,尤其新手,会有开发难度。
为此,qg_botsdk相应提供了另一个选择,这一款sdk虽然同样使用asyncio编写sdk底层,但其同时提供了threading和asyncio封装下的应用层调用,以抽象化封装的库编写方式,极大地降低应用层的开发难度。
亮点
已支持Websocket、Webhook、Remote Webhook(wh转ws允许本地调试)三种连接方式
已支持SDK层面的沙箱处理,允许沙箱过滤外部消息、外部过滤沙箱消息;已支持频道、频道私信、群、QQ私信四种沙箱过滤模式
两种应用层开发方式(threading、asyncio),可根据自己的喜好选择,而底层均为asyncio实现,保持高并发能力
灵活的构建方式,即使官方删除或新增字段,SDK也不会规范于原来的数据格式,而会把真实数据反馈给你
轻量,简洁,统一的代码结构,通过录入回调函数处理不同事件,10行即可构建一个简单的程序
容易入门,无需学会asyncio、类继承等编程技巧也可使用,同时保留较高并发能力
保留官方http API中Json数据的结构字段,带你学习官方结构,日后可自行开发适合自己的SDK
简单易用的plugins编写与加载,使用例子可参阅 example_13(装饰器).py
方便多场景(频道+群等)构建机器人的抽象化封装,使用例子可参阅 example_16(Q群简单工作流).py
下载方式
pip安装(推荐):
pip install qg-botsdk
注意是qg-botsdk(中线),不是qg_botsdk(底线)
一个简单的工作流
from qg_botsdk import BOT, Model # 导入SDK核心类(BOT)、所有数据模型(Model)
bot = BOT(bot_id='xxx', bot_token='xxx', is_private=True, is_sandbox=True) # 实例化SDK核心类
@bot.bind_msg() # 绑定接收消息事件的函数
def deliver(data: Model.MESSAGE): # 创建接收消息事件的函数
if '你好' in data.treated_msg: # 判断消息是否存在特定内容
data.reply('你好,世界') # 发送被动回复(带message_id直接reply回复)
# 如需使用如 Embed 等消息模板,可传入相应结构体, 如:
# data.reply(ApiModel.MessageEmbed(title="你好", content="世界"))
if __name__ == '__main__':
bot.start() # 开始运行机器人
指令装饰器
SDK同时已经在内部实现指令装饰器:
from qg_botsdk import BOT, Model
bot = BOT(bot_id='xxx', bot_token='xxx', is_private=True, is_sandbox=True)
# before_command代表预处理器,将在检查所有commands前执行(要求SDK版本>=2.5.2)
@bot.before_command()
def preprocessor(data: Model.MESSAGE):
bot.logger.info(f"收到来自{data.author.username}的消息:{data.treated_msg}")
@bot.on_command(
regex=r"你好(?:机器人)?", # 正则表达式,匹配用户消息
is_short_circuit=True, # is_short_circuit代表短路机制,根据注册顺序,匹配到即停止匹配,但不影响bind_msg()
is_require_at=True, # is_require_at代表是否要求检测到用户@了机器人才可触发指令
is_require_admin=True, # is_require_admin代表是否要求检测到用户是频道主或频道管理才可触发指令
admin_error_msg="抱歉,你的权限不足(非频道主或管理员),不能使用此指令",
)
def command(data: Model.MESSAGE):
data.reply("你好,世界")
if __name__ == '__main__':
bot.start()
相关链接
- 更多完整例程:
- 文档:
官方注册机器人:https://q.qq.com/#/
SDK QQ交流群:https://jq.qq.com/?_wv=1027&k=3NnWvGpz
Metadata
Release files for qg-botsdk 4.3.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qg_botsdk-4.3.10.tar.gz | 94.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qg_botsdk-4.3.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 201.3 kB
Release files / qg_botsdk-4.3.10.tar.gz
| Download URL | qg_botsdk-4.3.10.tar.gz |
|---|---|
| Size | 94.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a879f8eaaaf246d66fdba32067cb166b58922fba368928fc8ce814e47fbb2aa
|
|
BLAKE2b-256 checksum How to use checksums |
bb5d6244b092af59f9f22660150ee392e4e8305533b70b351f74225cf1e86bd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / qg_botsdk-4.3.10-py3-none-any.whl
| Download URL | qg_botsdk-4.3.10-py3-none-any.whl |
|---|---|
| Size | 107.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
99727c61bfcecc0d89909d54f854bc191c3e37292b9a473ca1a19fc3d4272007
|
|
BLAKE2b-256 checksum How to use checksums |
c911ad100062f969dc101f83033d50e0780d8719d5f4120e7a433108fcfddd63
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|