file_count 恒为 0(且 used_space/limit_count/total_space 是占位/写死值)。根因: 0x6D8 view 命令分三个 subcommand(1=List, 2=Count, 3=Space),但 getCount 错发到 **subCommand 3(Space)** 且 busId=0,并从 pb<1>/pb<2> 读计数——服务端根本没返回 Count 块,于是恒 0。 真机 RE(bot 在测试群传/删文件核对): - Count 走 **0x6D8_2 + busId=6**,响应 Count 块里 fileCount=**field 4**、maxCount(文件 数上限,如 1500)=**field 6**(旧 pb<1>/pb<2> 全落空)。 - Space 走 **0x6D8_3**,响应 Space 块 totalSpace=**field 4**、usedSpace=**field 5**(64 位)。 - 实测:fileCount=4、limitCount=1500、usedSpace=20103729、totalSpace=10737418240。 修复:改 GetGroupFileCount 到 subCommand 2 + busId 6 + 正确 tag;新增 GetGroupFileSpace (0x6D8_3);action 并发查两者,四个字段全返回**服务端实际值**(优于 NapCat 的写死占位)。 含 count/space 编解码回归测试。catalog regen。 typecheck 12 包;protocol 591 / onebot 521 / core 472 全绿。
Next Remote Protocol Framework.
Releases · Issues · QQ 群 · Telegram
SnowLuma 是一个基于 TypeScript 的协议转换框架,旨在为 QQ 客户端提供 OneBot v11 标准接口,支持 WebSocket/HTTP 适配、多账号并行及 WebUI 管理。
⚠️ 免责声明:SnowLuma 是独立的第三方互操作项目,与腾讯 / QQ 无任何隶属或授权关系。本项目仅供学习与技术研究,请遵守《QQ 用户协议》及适用法律;软件按"现状"提供、不附带任何担保,使用风险自负。详见
EULA.md。⚠️ Disclaimer: SnowLuma is an independent, third-party interoperability project with no affiliation with or endorsement by Tencent / QQ, provided for study and research only, "as is" without warranty. Comply with the QQ User Agreement and applicable law; use at your own risk. See
EULA.md.
特性
- OneBot v11 兼容:支持文本、音视频、Markdown、JSON 等消息格式。
- 高性能架构:TypeScript 全栈,基于 pnpm monorepo 管理,核心逻辑分离。
- 现代化管理:内置 WebUI 面板,支持实时日志、密码热更、多账号管理。
- 多适配器支持:WebSocket (Server/Client)、HTTP (Server/Post)。
- 数据持久化:使用 SQLite 存储好友、群组等关系数据。
快速开始
- 从 Releases 下载最新发布包并解压。
- 运行
./launcher.bat(Windows) 或./launcher.sh(Linux)。 - 访问
http://localhost:5099(初始账号admin,密码见控制台输出)。
许可 / License
SnowLuma 采用 源码可见非商业许可(SnowLuma Source-Available Non-Commercial License),见 LICENSE。这不是 OSI 开源许可:源码公开供查看、学习与非商业自托管,但禁止任何商业使用(出售、转售、付费托管 / 代搭 / 代运营等),公开发布修改版须事先书面授权。随附的原生附加组件(snowluma-*.node 等)为专有组件,不在本许可范围内。二进制发行包另受 EULA.md 约束;商业授权请联系 motricseven@foxmail.com。参与贡献请阅读 CONTRIBUTING.md。
SnowLuma is under a source-available, non-commercial license (see LICENSE) — NOT an OSI open-source license. The source is published for study and non-commercial self-hosting; commercial use is prohibited without prior written permission, and the bundled native addon (snowluma-*.node) is proprietary and not covered by this license.
鸣谢
参考了 LagrangeV2 的协议定义与 NapCatQQ 的实现思路。