Skip to content
This repository has been archived by the owner on Aug 2, 2020. It is now read-only.

v4.0.0-alpha.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@stdrc stdrc released this 14 May 01:02
9c894c8

更新日志:

4.0.0 版本代码完全重构,提取了 C++ SDK,且内部在核心和各功能模块之间进行了解耦,代码结构更加清晰、健壮,插件的稳定性也因此大幅提高。

当前版本为早期测试版,接口可能在随后的版本中发生较大变化,请不要在生产环境使用,但欢迎在测试环境提前体验。

目前检查更新功能还不能使用。

✔️ 新增特性:

下面列出的是和原有功能互不影响的新增特性,不存在兼容性问题。

  • API 所有接口均支持 _async 后缀,用于异步调用
  • 新增 enable_backward_compatibility 用于开关与旧版本的兼容性,默认为 true,注意,这个配置会影响事件过滤器所接收到的事件数据
  • 配置文件支持 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 中的日志文件,info 级别以上的日志仍会写入酷 Q 的日志窗口
  • 新增 show_log_console 配置项用于开关输出日志的控制台,默认为 false
  • 消息类型的上报中,除了原有的 message 字段表示消息外,新增 raw_message 字段,用于提供未经处理的原始消息文本(没有经过 CQ 码增强和上报格式修改)
  • set_restart_plugin 接口新增 delay 参数,用于控制插件重启的延迟毫秒数,默认 0

⚠️ 默认保持兼容性的更改

下面列出的是已经发生了和旧版不兼容的变化,但默认情况下(即 enable_backward_compatibility 配置项为 true 时)仍保持兼容的更改。

  • 群组消息中匿名信息现在以对象形式表示,例如 "anonymous": {"id": 1000019, "name": "邓八公", "flag": "AAAAAAAPQlMABrXLsMu5qwAokaXsWulfxg2hPMTHguk1acbiU1NyW2BfxEnEMR5SNYFSns6SKKVe5A=="},非匿名消息中此字段为 null
  • 通知类上报中(群成员增加、群管理员变更等),post_type 字段值从 event 变为 notice,原先的 event 字段变为 notice_type 字段
  • 请求类上报的 message 字段现变为 comment 字段

❌ 破坏性的更改

下面列出的是与旧版不兼容,且无法通过配置保持兼容性的更改。这意味着如果你使用了与它们相关的功能,可能需要修改配置或代码才能继续正常使用。

  • 事件过滤器不再使用 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 接口返回的数据有所变化,但常用的 goodonline 两个字段没有改变,具体请自行测试