这是一个对接 开黑啦平台 的机器人开发框架,是实现了simple-robot(下文简称simbot
)标准API的通用开发框架。
开黑啦组件提供多个模块来支持开发者开发一个开黑啦bot应用或第三方框架。
-
核心模块提供针对于 开黑啦开发者平台 以及 simbot-标准API模块 进行封装,提供一套实现了simbot-api的标准开黑啦标准库。 其中包括对于事件、KMarkdown、通用api标准等基础信息的封装。
-
api模块 component-kaiheila-api-v$version
api模块提供针对于 开黑啦http接口api 的对应版本的封装。
上述其他模块以针对开黑啦为主,面向开黑啦框架、第三方组件等开发者。
-
标准模块 component-kaiheila
标准的开黑啦-simbot组件模块,基于上述其他模块以外,整合 simbot-core 并实现完整的simbot功能,面向bot应用开发者。
目前的v3-api模块较为完整可用,其他模块在 simbot-3.x
问世之前将不会大幅度更新。
且在 simbot-3.x
问世前,开黑啦组件下的各模块不会发布正式版本。
不过对于例如 v3-api
这种与simbot无关的api模块,你依然可以使用,并欢迎提供反馈与建议。
对于其他模块,针对 **事件** 的封装、ws协议的消息接收、心跳发送、事件监听等基础内容实际上也已经可以正常使用了, 只是暂未实现断线重连等机制。
这方面的问题,我暂时尚未提供文档(因为不够完善)。如果你有兴趣使用或者协助我,抑或是仅供参考,可以通过issue、讨论区进行讨论,或者加入群聊向我联系。
未来开黑啦组件可能会脱离当前仓库,使用独立仓库进行管理。
<!-- 开黑啦 V3 API组件 -->
<dependency>
<groupId>love.forte.simple-robot</groupId>
<artifactId>component-kaiheila-v3</artifactId>
<version>0.0.1-PREVIEW</version>
</dependency>
TODO
API组件中,提供了针对于官方的大部分客户端请求API的基础封装,比如:
@Test
fun listTest() = runBlocking {
val guildId = "1145141919810" // GuildApiTest().guildList().items[0].id
val client = HttpClient() // ktor client
val token = "token"
val data: ListResp<ChannelInfo, ApiData.Resp.EmptySort> = ChannelListReq(guildId).doRequest(V3, client, token)
println(data)
println("-0-")
data.forEach { it: ChannelInfo ->
println(it)
}
}
其中,ChannelListReq
即为对于 /channel/list
接口的封装。
所有的api请求实例均为此类的命名方式。
在得到 xxxReq
实例后,可以通过顶层函数 xxxReq.doRequest(client, token)
发送api请求,并得到响应值。
列表类型的响应值类型如上面所示,是一个 ListResp<DATA, SORT>
实例。其中,DATA
便是每个元素的实例,SORT
则为排序参数的响应(如果有的话)。