simple-robot / simbot-component-qq-guild

一个 Kotlin 多平台的QQ机器人(包括群聊) SDK,一个 Simple Robot 的组件库。对接官方API,Java 友好、异步高效 😻😻😽
https://simbot.forte.love/component-qq-guild.html
GNU Lesser General Public License v3.0
21 stars 1 forks source link

帖子相关API实现 (不含事件) #82

Closed ForliyScarlet closed 1 year ago

ForliyScarlet commented 1 year ago

Note 更多说明参考 文档网站 (此PR合并后会发布) 或API文档

API

GetThreadListApi 为例:

// QQ频道API请求用的 token
val token = "Bot xxx"

// Ktor 的 HttpClient
// 在不同平台下请注意选择可用的引擎,比如在JS平台下使用 `JS` 引擎,windows系统平天下使用 `WinHttp` 等。
val client = HttpClient()

// 请求的服务器地址
// 此处为沙箱地址,也可选择正式地址或其他第三方代理地址
val server = QQGuild.SANDBOX_URL

val api = GetThreadListApi.create("channel ID")
val result = api.request(client, server, token)

result.threads.forEach { thread ->
    // 遍历结果...
}

组件(core)

val guild: QGGuild = ....

// 在所有的子频道中筛选出 帖子子频道
// highlight-next-line
guild.forums.forumChannels
    .collect { channel: QGForumChannel ->
    // ...
    channel.threads.collect {
        // 获取所有的主题帖
    }
    val thread: QGThread? = channel.thread("123".ID) // 获取指定ID的主题帖
    // 构造并发布一个主题贴
    channel.createThread {
        title = ...
        content = ...
        format = ...
    }
    // 假设其不为null
    // 删除某个主题帖
    thread!!.delete()
}
// 根据ID获取指定的 帖子子频道 实例
val forumChannel: QGForumChannel? = guild.forums.forumChannel("666".ID)

close https://github.com/simple-robot/simpler-robot/issues/663