py-pcqq 是 PCQQ 客户端协议的 Python 实现,可以通过命令pip install py-pcqq
安装该协议库
本项目仅由 Python3 的标准库实现,同时开源于Github,大佬们给个star吧QAQ
已实现功能
登录
- 账号密码登录
- 二维码登录
- 本地登录重连
发送消息
- At
- 文本
- 表情
- 卡片
- 图片(仅群聊)
接收消息
- At
- 文本
- 图片
- 表情
接收事件
- 进群事件
- 退群事件
- 禁言事件
开放API
- 取群信息
- 修改群成员Card
- 设置群成员禁言
How to use
安装
在系统上安装 Python 3.7及以上环境( Android系统也可以使用pydroid3等应用 )
命令行中执行 pip install py-pcqq
( 如果是命令行系统且使用扫码登录需额外安装pillow
库 )
最小实例
1 | import pcqq |
- 协议库默认使用二维码登录,在run_bot传参中填入QQ账号和密码则使用账密登录
- 选用扫码登录时会调用系统默认程序打开二维码图片,但在纯命令行系统中,需要安装
pillow
库将图片打印至终端 - 无论是二维码登录还是账号密码登录,在一次登录结束后都会生成一份
session.token
的文件,下次运行程序将直接使用文件数据重连
编写功能
py-pcqq
内置了一些装饰器函数让你可以很轻松的实现机器人的功能
内置装饰器 | 功能 | 说明 |
---|---|---|
on | 元匹配 | 当接收事件满足所有的rules时满足匹配 |
on_type | 事件类型匹配 | 当接收事件为指定类型时满足匹配 |
on_regex | 正则匹配 | 当接收消息能被正则匹配式解析时满足匹配 |
on_full | 完全匹配 | 当接收消息为指定字符串时满足匹配 |
on_fulls | 完全匹配组 | 当接收消息在指定字符串组中时满足匹配 |
on_command | 命令匹配 | 当关键字出现在接收消息首部时满足匹配 |
on_commands | 命令匹配组 | 当关键字组出现在接收消息首部时满足匹配 |
这些装饰器函数的代码位在项目的plugin.py中,其使用方法请查看实例文件example.py
PQCode
协议库会将一些不方便显示的消息段以PQ码的形式解析,同理默认使用PQ码来发送这些消息
@某人
实例: [PQ:at,qq=123456]
参数 | 对应值 | 说明 |
---|---|---|
AT对象的账号 | 添加一个AT消息 |
表情
实例: [PQ:face,id=14]
参数 | 对应值 | 说明 |
---|---|---|
id | 表情的ID | 添加指定ID的表情 |
图片
实例: [PQ:image,url=https://www.baidu.com/img/flexible/logo/pc/peak-result.png]
参数 | 对应值 | 说明 |
---|---|---|
url | 图片直链 | 网络图片资源的url链接 |
file | 图片路径 | 本地图片资源的路径 |
base64 | b64编码 | 图片的base64编码 |
以上参数任选其一即可,优先级别是 url
> file
> base64
音乐
实例: [PQ:music,keyword=浪荡客]
参数 | 对应值 | 说明 |
---|---|---|
keyword | 搜索的关键词 | 在QQ音乐平台搜索,并返回第一条搜索结果 |
自定义音乐
实例: [PQ:music,title=标题,content=内容,url=跳转网址,audio=音频直链,cover=封面直链]
参数 | 对应值 | 说明 |
---|---|---|
title | 卡片标题 | 音乐卡片的标题 |
content | 卡片内容 | 音乐卡片的内容,一般是歌手名称 |
url | 卡片调整网址 | 点击音乐卡片跳转的网址 |
audio | 音频直链 | 点击卡片按钮播放音频资源链接 |
cover | 封面直链 | 在卡片上显示的图片资源链接 |
自定义音乐是直接手动填入所有信息并组成音乐卡片发出,而上面的则是通过内置的方法从指定平台爬虫并组成卡片