Python实现PCQQ协议


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
2
3
4
import pcqq

pcqq.run_bot()
# pcqq.run_bot(123456, "123456")
  1. 协议库默认使用二维码登录,在run_bot传参中填入QQ账号和密码则使用账密登录
  2. 选用扫码登录时会调用系统默认程序打开二维码图片,但在纯命令行系统中,需要安装pillow库将图片打印至终端
  3. 无论是二维码登录还是账号密码登录,在一次登录结束后都会生成一份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]

参数 对应值 说明
qq 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 封面直链 在卡片上显示的图片资源链接

自定义音乐是直接手动填入所有信息并组成音乐卡片发出,而上面的则是通过内置的方法从指定平台爬虫并组成卡片


Author: DawnNights
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source DawnNights !
  TOC