mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-26 07:20:09 +08:00
http-api group info
This commit is contained in:
parent
64980e066f
commit
5c30f187f7
@ -3,6 +3,7 @@ package net.mamoe.mirai.api.http.dto
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import net.mamoe.mirai.api.http.AuthedSession
|
||||
import net.mamoe.mirai.contact.Group
|
||||
|
||||
@Serializable
|
||||
abstract class VerifyDTO : DTO {
|
||||
@ -37,6 +38,28 @@ data class MuteDTO(
|
||||
val time: Int = 0
|
||||
) : VerifyDTO()
|
||||
|
||||
@Serializable
|
||||
data class GroupConfigDTO(
|
||||
override val sessionKey: String,
|
||||
val target: Long,
|
||||
val config: GroupInfoDTO
|
||||
) : VerifyDTO()
|
||||
|
||||
@Serializable
|
||||
data class GroupInfoDTO(
|
||||
val name: String? = null,
|
||||
val announcement: String? = null,
|
||||
val confessTalk: Boolean? = null,
|
||||
val allowMemberInvite: Boolean? = null,
|
||||
val autoApprove: Boolean? = null,
|
||||
val anonymousChat: Boolean? = null
|
||||
) : DTO {
|
||||
constructor(group: Group) : this(
|
||||
group.name, group.announcement, group.confessTalk, group.allowMemberInvite,
|
||||
group.autoApprove, group.anonymousChat
|
||||
)
|
||||
}
|
||||
|
||||
@Serializable
|
||||
open class StateCode(val code: Int, var msg: String) {
|
||||
object Success : StateCode(0, "success") // 成功
|
||||
|
@ -3,6 +3,8 @@ package net.mamoe.mirai.api.http.route
|
||||
import io.ktor.application.Application
|
||||
import io.ktor.application.call
|
||||
import io.ktor.routing.routing
|
||||
import net.mamoe.mirai.api.http.dto.GroupConfigDTO
|
||||
import net.mamoe.mirai.api.http.dto.GroupInfoDTO
|
||||
import net.mamoe.mirai.api.http.dto.MuteDTO
|
||||
import net.mamoe.mirai.api.http.dto.StateCode
|
||||
|
||||
@ -10,6 +12,9 @@ import net.mamoe.mirai.api.http.dto.StateCode
|
||||
fun Application.groupManageModule() {
|
||||
routing {
|
||||
|
||||
/**
|
||||
* 禁言
|
||||
*/
|
||||
miraiVerify<MuteDTO>("/muteAll") {
|
||||
it.session.bot.getGroup(it.target).muteAll = true
|
||||
call.respondStateCode(StateCode.Success)
|
||||
@ -21,7 +26,7 @@ fun Application.groupManageModule() {
|
||||
}
|
||||
|
||||
miraiVerify<MuteDTO>("/mute") {
|
||||
when(it.session.bot.getGroup(it.target).members[it.member].mute(it.time)) {
|
||||
when(it.session.bot.getGroup(it.target)[it.member].mute(it.time)) {
|
||||
true -> call.respondStateCode(StateCode.Success)
|
||||
else -> throw PermissionDeniedException
|
||||
}
|
||||
@ -34,5 +39,27 @@ fun Application.groupManageModule() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 群设置(需要相关权限)
|
||||
*/
|
||||
miraiGet("/groupConfig") {
|
||||
val group = it.bot.getGroup(paramOrNull("target"))
|
||||
call.respondDTO(GroupInfoDTO(group))
|
||||
}
|
||||
|
||||
miraiVerify<GroupConfigDTO>("/groupConfig") { dto ->
|
||||
val group = dto.session.bot.getGroup(dto.target)
|
||||
with(dto.config) {
|
||||
name?.let { group.name = it }
|
||||
announcement?.let { group.announcement = it }
|
||||
confessTalk?.let { group.confessTalk = it }
|
||||
allowMemberInvite?.let{ group.allowMemberInvite = it }
|
||||
// TODO: 待core接口实现设置可改
|
||||
// autoApprove?.let { group.autoApprove = it }
|
||||
// anonymousChat?.let { group.anonymousChat = it }
|
||||
}
|
||||
call.respondStateCode(StateCode.Success)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user