NapCat 实现
NapCat 实现
NapCat 是基于 NTQQ 的 OneBot V11 实现。Lingchu Bot 的 napcat/ 扩展包在默认 OneBot V11 处理器之上添加 NapCat 专属能力。
最低版本
| 能力 | 最低版本 |
|---|---|
群公告(发送群公告) | NapCat.Onebot >= 4.18.0 |
群头像(设置群头像) | NapCat.Onebot >= 4.18.0 |
远程公告(远程公告) | NapCat.Onebot >= 4.18.0 |
机器人通过 get_version_info() 检测 NapCat,其中 app_name == "NapCat.Onebot"。低于最低版本的命令会从菜单中隐藏。
扩展模块
| 模块 | 新增 |
|---|---|
announcement.py | 使用 _send_group_notice API 的群公告处理器 |
profile.py | 使用 set_group_portrait API 的群头像处理器 |
群公告
NapCat 通过 _send_group_notice API 支持文本和图片公告:
发送群公告 <内容> [图片]
send-announcement <content> [image]图片参数接受 nonebot-plugin-alconna 的 UniImage。实现会把原始字节、本地路径或可下载 URL 解析到缓存文件,再向 API 传入文件系统路径。
NapCat 当前要求公告 image 字段在 NapCat 侧可读取。如果 Lingchu Bot 与 NapCat 运行在不同文件系统中,请按用户配置指南配置群公告图片路径桥接。
WSL2(Debian / Ubuntu)部署、迁移到 WSL2 时遇到 retcode=1200, image 字段可能格式不正确 等问题,请参考 NapCat Docker WSL2 部署章节。最常见的根因是 Docker Desktop Settings → Resources → File sharing 没把 \\wsl.localhost\Debian\(按你的 distro 名)加进白名单,补上后 Apply & restart 并重建 NapCat 容器即可。
群头像
NapCat 通过标准 set_group_portrait API 支持设置群头像:
设置群头像 <图片>
set-group-avatar <image>远程公告
远程公告命令(远程公告)使用与本地公告命令相同的 _send_group_notice API,但作用于不同的群:
远程公告 <群号|群名称> <内容> [图片]
remote-announcement <group_id|group_name> <content> [image]群号解析和上下文校验逻辑见默认实现。
配置
纯文本公告除标准 OneBot V11 配置外,不需要额外的 Lingchu Bot 配置。跨 Docker 或跨主机发送图片公告时,需要配置群公告图片路径桥接。确保 NapCat 正在运行并通过 WebSocket 或 HTTP 反向代理连接到 NoneBot。
DRIVER=~fastapi+~httpx+~websockets
ONEBOT_ACCESS_TOKEN=your-token源码参考
最后更新于