Skip to main content

让机器人查询QQ详细信息 (使用OneBot API)

Project description

基于 NoneBot2 的 QQ 用户信息查询插件

license pypi python adapter uv

📖 介绍

一个基于 NoneBot2 的插件,用于查询 QQ 用户的公开信息。通过 QQ 号或 @用户 方式获取用户资料,包括昵称、头像、等级、生日、VIP 等信息。数据来源于 OneBot 协议提供的用户信息接口。

目前仅支持 OneBot V11 协议。

📁 项目结构

nonebot-plugin-qqdetail/
├── __init__.py           # 插件入口,包含 PluginMetadata
├── config.py             # 配置模型(使用 Pydantic v2)
├── matchers.py           # 事件处理器(命令和通知)
├── utils.py              # 工具函数和数据处理
├── draw.py               # 图片生成逻辑
├── assets/               # 资源文件夹(需手动创建)
│   ├── 可爱字体.ttf      # 中文字体
│   └── NotoColorEmoji.ttf       # Emoji 字体
├── pyproject.toml        # 项目配置
├── README.md             # 使用文档
├── .env.example          # 配置示例
└── .gitignore            # Git 忽略文件

💿 安装

使用 nb-cli 安装

在 NoneBot2 项目的根目录下打开命令行,运行以下命令进行安装:

nb plugin install nonebot-plugin-qqdetail --upgrade

如需使用国内镜像源(如清华源)加速安装:

nb plugin install nonebot-plugin-qqdetail --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
使用包管理器安装

在 NoneBot2 项目的根目录下(或插件目录,取决于项目结构),打开命令行,使用你偏好的包管理器运行相应命令:

uv
uv add nonebot-plugin-qqdetail

安装仓库 master 分支:

uv add git+https://github.com/006lp/nonebot-plugin-qqdetail@master
pdm
pdm add nonebot-plugin-qqdetail

安装仓库 master 分支:

pdm add git+https://github.com/006lp/nonebot-plugin-qqdetail@master
poetry
poetry add nonebot-plugin-qqdetail

安装仓库 master 分支:

poetry add git+https://github.com/006lp/nonebot-plugin-qqdetail@master

然后,**手动或使用 `nb` 命令**将插件加载到你的 NoneBot2 项目中。 如果使用 `pyproject.toml` 管理插件,请确保在 `[tool.nonebot]` 部分添加了插件名:
[tool.nonebot]
# ... 其他配置 ...
plugins = ["nonebot_plugin_qqdetail"] # 确保你的插件代码在 nonebot_plugin_qqdetail 文件夹下
# 或者如果你直接放在根目录的插件文件夹,可能是 "your_plugins_folder.qqdetail" 之类的路径
# ... 其他插件 ...

⚙️ 配置

插件通过 .env 文件进行配置,所有配置项均为可选,默认为推荐设置。

基础配置

配置项 必填 默认值 说明
QQDETAIL_ONLY_ADMIN false 仅管理员可用(默认:false)
QQDETAIL_BOX_BLACKLIST [] 黑名单用户列表(这些用户的资料无法被查询)
QQDETAIL_WHITELIST_GROUPS [] 群聊白名单(仅这些群可使用命令,留空则所有群都可用)

自动获取配置

配置项 必填 默认值 说明
QQDETAIL_AUTO_BOX_CONFIG__INCREASE_BOX false 自动获取新入群用户信息
QQDETAIL_AUTO_BOX_CONFIG__DECREASE_BOX false 自动获取退群用户信息
QQDETAIL_AUTO_BOX_CONFIG__WHITE_GROUPS [] 自动获取功能的群聊白名单(留空则所有群都启用)

速率限制配置

配置项 必填 默认值 说明
QQDETAIL_RATE_LIMIT_CONFIG__TIME 0 速率限制时间(分钟),0表示不限制
QQDETAIL_RATE_LIMIT_CONFIG__WHITE_GROUPS [] 速率限制白名单群聊(这些群不受速率限制)
QQDETAIL_RATE_LIMIT_CONFIG__WHITE_USERS [] 速率限制白名单用户(这些用户不受速率限制)

显示配置

你可以精细控制要显示的用户信息字段(默认为全部显示):

分类 配置项 说明
基本信息 QQDETAIL_DISPLAY_CONFIG__CARD 群昵称
QQDETAIL_DISPLAY_CONFIG__TITLE 群头衔
QQDETAIL_DISPLAY_CONFIG__SEX 性别
QQDETAIL_DISPLAY_CONFIG__AGE 年龄
生日相关 QQDETAIL_DISPLAY_CONFIG__BIRTHDAY_CONFIG__ENABLE 生日
QQDETAIL_DISPLAY_CONFIG__BIRTHDAY_CONFIG__CONSTELLATION 星座
QQDETAIL_DISPLAY_CONFIG__BIRTHDAY_CONFIG__ZODIAC 生肖
联系信息 QQDETAIL_DISPLAY_CONFIG__PHONE_NUM 手机号码
QQDETAIL_DISPLAY_CONFIG__EMAIL 邮箱
QQDETAIL_DISPLAY_CONFIG__POST_CODE 邮编
地理信息 QQDETAIL_DISPLAY_CONFIG__HOME_TOWN 家乡
QQDETAIL_DISPLAY_CONFIG__ADDRESS 现居地
其他信息 QQDETAIL_DISPLAY_CONFIG__BLOOD_TYPE 血型
QQDETAIL_DISPLAY_CONFIG__CAREER 职业
QQDETAIL_DISPLAY_CONFIG__REMARK 备注
QQDETAIL_DISPLAY_CONFIG__LABELS 标签
QQDETAIL_DISPLAY_CONFIG__UNFRIENDLY 风险账号标记
VIP 信息 QQDETAIL_DISPLAY_CONFIG__VIP_CONFIG__ENABLE VIP
QQDETAIL_DISPLAY_CONFIG__VIP_CONFIG__YEARS_VIP 年VIP
QQDETAIL_DISPLAY_CONFIG__VIP_CONFIG__VIP_LEVEL VIP等级
活动信息 QQDETAIL_DISPLAY_CONFIG__LOGIN_DAYS 连续登录天数
QQDETAIL_DISPLAY_CONFIG__LEVEL 群等级
QQDETAIL_DISPLAY_CONFIG__JOIN_TIME 加群时间
个性签名 QQDETAIL_DISPLAY_CONFIG__LONG_NICK 个性签名

.env 文件配置示例:

# 基础配置
QQDETAIL_ONLY_ADMIN=false
QQDETAIL_BOX_BLACKLIST=["123456789", "987654321"]
QQDETAIL_WHITELIST_GROUPS=["123456789"]

# 自动获取配置
QQDETAIL_AUTO_BOX_CONFIG__INCREASE_BOX=false
QQDETAIL_AUTO_BOX_CONFIG__DECREASE_BOX=false
QQDETAIL_AUTO_BOX_CONFIG__WHITE_GROUPS=["123456789"]

# 速率限制配置
QQDETAIL_RATE_LIMIT_CONFIG__TIME=5
QQDETAIL_RATE_LIMIT_CONFIG__WHITE_GROUPS=["123456789"]
QQDETAIL_RATE_LIMIT_CONFIG__WHITE_USERS=["123456789"]

# 显示配置(关闭手机号显示以保护隐私)
QQDETAIL_DISPLAY_CONFIG__PHONE_NUM=false

注意: .env 具体示例参见.env.example。另外,文件中的列表通常需要以 JSON 字符串的形式提供。

🎉 使用

指令表

指令 别名 权限 需要@ 范围 说明
/detail <QQ号 或 @用户 或 无> info 群员 可选 群聊/私聊 查询目标 QQ 用户的详细信息。支持 QQ 号、@用户,或不带参数查询自己。

使用说明

  • <QQ号>: 输入 5-11 位的有效 QQ 号码
  • @用户: 在群聊中直接 @ 指定的群成员
  • 无参数: 直接发送指令查询发送者本人的信息
  • 数据来源: 基于 OneBot 协议获取用户信息,准确性取决于连接的 OneBot 实现
  • 权限控制: 支持多种权限控制,如管理员专用、用户黑名单等

🎨 返回示例

查询成功示例:

[图片:用户头像和彩色文字]
QQ号:123456789
昵称:示例昵称
性别:男
年龄:20
生日:05-15
星座:金牛座
生肖:龙
现居:广东-深圳
QQ等级:50级
注册时间:2010年
签名:这是一个示例签名。

格式错误示例:

命令格式错误、QQ号无效或包含多余参数。
请使用:
/detail <QQ号(5-11位)> 或 /detail @用户
/info <QQ号(5-11位)> 或 /info @用户
/detail (查询自己)

查询失败示例:

获取 QQ 信息失败 (UID: 123456789)。
原因:用户信息获取失败

⚠️ 重要提醒

  • 学习交流用途:本插件仅供学习和交流使用,请勿用于任何非法目的
  • 隐私保护:查询用户信息时请尊重他人隐私,确保使用符合相关法律法规
  • 免责声明:用户需对自身使用行为负责,开发者不对使用本插件产生的任何后果承担责任

📄 许可证

本项目采用 AGPL-3.0 (GNU Affero General Public License v3.0) 开源许可证。

AGPL-3.0 许可证说明

AGPL-3.0 是 GNU 自由软件基金会发布的开源许可证,特别适用于网络应用。其主要特点包括:

  • 网络服务条款:如果您修改本软件并通过网络提供服务,必须公开修改后的完整源代码
  • Copyleft 特性:任何基于本项目的衍生作品必须采用相同的许可证
  • 用户自由保护:确保用户在使用网络服务时享有修改和再分发的自由

有关许可证的完整条款,请查看 LICENSE 文件或访问 GNU 官网

🙏 致谢

  • NoneBot2 社区:提供了优秀的机器人开发框架
  • OneBot 协议:提供了标准化的机器人通信协议
  • AstrbotPlugin-ProfileSearch:本插件参考了其设计思路

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_qqdetail-2.0.0.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_qqdetail-2.0.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_qqdetail-2.0.0.tar.gz.

File metadata

  • Download URL: nonebot_plugin_qqdetail-2.0.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nonebot_plugin_qqdetail-2.0.0.tar.gz
Algorithm Hash digest
SHA256 8b3fbab14adb777f5bc3f863bcb7bf9dff595380e8e7ba4653af146cf9bb21ed
MD5 78756246960384d629528aa070a39d07
BLAKE2b-256 b030927355ff1e29396f6d536cf306029e0b8a465a89bbd5d4b1a6a5d5ca5696

See more details on using hashes here.

File details

Details for the file nonebot_plugin_qqdetail-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_qqdetail-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a18af6d2f2dd09d96af59157e2c280cf0feb76d510782231ff85b912fa4efb43
MD5 34fa5243ce07f5f7a2036eaa951e3f60
BLAKE2b-256 dd34483c69e4641abff66799f88c3ec164dad9c2ad3acf0c0be7fe1dc07e5322

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page