This repository has been archived by the owner on Aug 2, 2020. It is now read-only.
v4.0.0
4.0.0 版本代码完全重构,提取了 C++ SDK,且内部在核心和各功能模块之间进行了解耦,代码结构更加清晰、健壮,插件的稳定性也因此大幅提高。
与此同时不可避免地出现了一些与旧版的不兼容更改,下面会全部列出,如果你需要从 v3.x 升级到 v4.x,请参考 升级指南。
✔️ 新增特性:
下面列出的是和原有功能互不影响的新增特性,不存在兼容性问题。
- API 所有接口均支持
_async
后缀,用于异步调用 - 新增
enable_backward_compatibility
用于开关与旧版本的兼容性,默认为false
,注意,这个配置不会影响事件过滤器所接收到的事件数据,即无论开启与否,事件过滤规则中都应该使用 4.x 版本的上报数据字段。 - 配置文件支持 JSON 格式编写,加载时按如下路径依次尝试,一旦有一个路径加载成功,则停止加载(所有路径均为相对于
app\io.github.richardchien.coolqhttpapi
的相对路径):config.(cfg|ini)
(扩展名的括号和竖线表示优先加载.cfg
,若没有,则加载.ini
,下同),文件中通用配置需要放在[general]
下,QQ 号特定配置放在[<user_id>]
下config\general.(cfg|ini)
+config\<user_id>.(cfg|ini)
,前者是通用配置,全部放在[general]
下,后者是 QQ 号特定配置,全部放在[<user_id>]
下,后者覆盖前者中已存在的内容config.json
,通用配置需放在根对象的general
字段,QQ 号特定配置放在 QQ 号对应字段,例如{"general": {"host": "0.0.0.0"}, "123456": {"port": 6666}}
config\general.json
+config\<user_id>.json
,配置项均直接放在根对象,后者覆盖前者中已存在的内容
- 日志现在全部写入
app\io.github.richardchien.coolqhttpapi\log
中的日志文件,日志文件大小上限 6MB,info 级别以上的日志仍会写入酷 Q 的日志窗口 - 新增
show_log_console
配置项用于开关输出日志的控制台,默认为false
- 消息类型的上报中,除了原有的
message
字段表示消息外,新增raw_message
字段,用于提供未经处理的原始消息文本(没有经过 CQ 码增强和上报格式修改) set_restart_plugin
接口新增delay
参数,用于控制插件重启的延迟毫秒数,默认 0- 检查更新新增
alpha
更新通道用于推送最新但可能极不稳定的测试版 - HTTP、反向 WebSocket 的请求头中新增
X-Self-ID
头用于表示当前正在上报或建立连接的 QQ 号,以便后端区分 /set_restart
接口新增clean_cache
参数,用于清空酷 Q 当前登录号的缓存
🐞 Bug 修复和细节优化:
- 修复 WebSocket 鉴权失败后仍然会执行调用的 bug
- 修复未转义的
[CQ:]
无法发送的问题 - 修复字符串格式的消息上报中,英文逗号被转义的 bug(与酷 Q 原生不符)
- 修复 Docker 镜像中文件权限的 bug
- 优化 Docker 镜像的使用体验
enable_backward_compatibility
保持兼容的更改:
下面列出的是已经发生了和旧版不兼容的变化,但可通过设置 enable_backward_compatibility
配置项为 true
来保持兼容的更改。
- 群组消息中匿名信息现在以对象形式表示,例如
"anonymous": {"id": 1000019, "name": "邓八公", "flag": "AAAAAAAPQlMABrXLsMu5qwAokaXsWulfxg2hPMTHguk1acbiU1NyW2BfxEnEMR5SNYFSns6SKKVe5A=="}
,非匿名消息中此字段为null
- 通知类上报中(群成员增加、群管理员变更等),
post_type
字段值从event
变为notice
,原先的event
字段变为notice_type
字段 - 请求类上报的
message
字段现变为comment
字段
除非万不得已,不建议设置 enable_backward_compatibility
为 true
,虽然这会让本次升级更容易,但会增加后续升级的工作量,且在查阅文档时容易感到困惑。这里的更改在下一个大版本中极有可能不再可配置为保持兼容。
❌ 破坏性的更改:
下面列出的是与旧版不兼容,且无法通过配置保持兼容性的更改。这意味着如果你使用了与它们相关的功能,可能必须修改配置或代码才能继续正常使用。
- 事件过滤器不再使用
use_filter
配置项来开关,而是使用event_filter
直接指定过滤器规则文件的相对路径(相对于app\io.github.richardchien.coolqhttpapi
),默认为空,即表示不启用事件过滤器 - 事件过滤器规则中,旧版中对消息原始文本进行过滤的
message
字段现在改为处理过的数组格式的消息,未经处理的原始消息文本现在保存在raw_message
字段 - 上报和反向 WebSocket 请求头的 User-Agent 变更为形如
CQHttp/4.0.0-alpha.1
的形式(CoolQHttpApi
改为CQHttp
) /get_status
接口返回的数据有所变化,但常用的good
和online
两个字段没有改变,具体请自行测试- 更改编译选项导致 Windows 7 和 Windows Server 2008 用户可能需要安装 通用 C 运行库更新 才能正常使用
🌈 与 beta.2 版本相比的更新
- 切换编译选项的 CRT 为动态链接,Windows 7 和 Windows Server 2008 可能需要安装 通用 C 运行库更新