mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 13:12:17 +08:00
Shamrock
feat: GroupSystemMessage
This commit is contained in:
parent
1593d973a0
commit
2b64aa8b2c
@ -30,6 +30,7 @@ internal object ActionManager {
|
||||
// GroupActions
|
||||
ModifyTroopName, LeaveTroop, KickTroopMember, BanTroopMember, SetGroupWholeBan, SetGroupAdmin,
|
||||
ModifyTroopMemberName, SetGroupUnique, GetTroopHonor, GroupPoke, SetEssenceMessage, DeleteEssenceMessage,
|
||||
GetGroupSystemMsg,
|
||||
|
||||
// MSG ACTIONS
|
||||
SendMessage, DeleteMessage, GetMsg, GetForwardMsg, SendGroupForwardMsg, SendGroupMessage, SendPrivateMessage,
|
||||
|
@ -0,0 +1,66 @@
|
||||
package moe.fuqiuluo.shamrock.remote.action.handlers
|
||||
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import moe.fuqiuluo.qqinterface.servlet.GroupSvc
|
||||
import moe.fuqiuluo.shamrock.remote.action.ActionSession
|
||||
import moe.fuqiuluo.shamrock.remote.action.IActionHandler
|
||||
import moe.fuqiuluo.shamrock.remote.service.data.GroupRequest
|
||||
import moe.fuqiuluo.shamrock.remote.service.data.GroupSystemMessage
|
||||
import moe.fuqiuluo.shamrock.tools.EmptyJsonString
|
||||
|
||||
internal object GetGroupSystemMsg: IActionHandler() {
|
||||
override suspend fun internalHandle(session: ActionSession): String {
|
||||
return invoke(session.echo)
|
||||
}
|
||||
|
||||
suspend operator fun invoke(echo: JsonElement = EmptyJsonString): String {
|
||||
val list = GroupSvc.requestGroupSystemMsgNew(20, 0, 0)
|
||||
val msgs = GroupSystemMessage(
|
||||
invited = mutableListOf(),
|
||||
join = mutableListOf()
|
||||
)
|
||||
list?.forEach {
|
||||
when(it.msg.group_msg_type.get()) {
|
||||
22, 2 -> {
|
||||
// invite
|
||||
msgs.invited += GroupRequest (
|
||||
msgSeq = it.msg_seq.get(),
|
||||
invitorUin = it.msg.action_uin.get(),
|
||||
invitorNick = it.msg.action_uin_nick.get(),
|
||||
groupId = it.msg.group_code.get(),
|
||||
groupName = it.msg.group_name.get(),
|
||||
checked = it.msg.msg_decided.get().isNotBlank(),
|
||||
actor = it.msg.actor_uin.get(),
|
||||
requesterUin = it.req_uin.get(),
|
||||
requesterNick = "",
|
||||
message = "",
|
||||
flag = "${it.msg_seq.get()};${it.msg.group_code.get()};${it.req_uin.get()}"
|
||||
)
|
||||
}
|
||||
1 -> {
|
||||
// add
|
||||
msgs.join += GroupRequest (
|
||||
msgSeq = it.msg_seq.get(),
|
||||
invitorUin = null,
|
||||
invitorNick = null,
|
||||
groupId = it.msg.group_code.get(),
|
||||
groupName = it.msg.group_name.get(),
|
||||
checked = it.msg.msg_decided.get().isNotBlank(),
|
||||
actor = it.msg.actor_uin.get(),
|
||||
requesterUin = it.req_uin.get(),
|
||||
requesterNick = it.msg.req_uin_nick.get(),
|
||||
message = it.msg.msg_additional.get(),
|
||||
flag = "${it.msg_seq.get()};${it.msg.group_code.get()};${it.req_uin.get()}"
|
||||
)
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
return ok(msgs, echo = echo)
|
||||
}
|
||||
|
||||
override val requiredParams: Array<String> = arrayOf("group_id", "folder_id")
|
||||
|
||||
override fun path(): String = "get_group_files_by_folder"
|
||||
}
|
@ -106,4 +106,8 @@ fun Routing.troopAction() {
|
||||
call.respondText(DeleteEssenceMessage(messageId), ContentType.Application.Json)
|
||||
}
|
||||
|
||||
getOrPost("/get_group_system_msg") {
|
||||
call.respondText(GetGroupSystemMsg(), ContentType.Application.Json)
|
||||
}
|
||||
|
||||
}
|
@ -43,3 +43,26 @@ internal data class SimpleTroopMemberInfo(
|
||||
@SerialName("unfriendly") val unfriendly: Boolean,
|
||||
@SerialName("card_changeable") val cardChangeable: Boolean,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
internal data class GroupRequest(
|
||||
// InvitedRequest
|
||||
@SerialName("request_id") val msgSeq: Long,
|
||||
@SerialName("invitor_uin") val invitorUin: Long?,
|
||||
@SerialName("invitor_nick") val invitorNick: String?,
|
||||
@SerialName("group_id") val groupId: Long,
|
||||
@SerialName("group_name") val groupName: String,
|
||||
@SerialName("checked") val checked: Boolean,
|
||||
@SerialName("actor") val actor: Long,
|
||||
// JoinRequest
|
||||
@SerialName("requester_uin") val requesterUin: Long,
|
||||
@SerialName("requester_nick") val requesterNick: String,
|
||||
@SerialName("message") val message: String,
|
||||
@SerialName("flag") val flag: String,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
internal data class GroupSystemMessage(
|
||||
@SerialName("invited_requests") var invited: List<GroupRequest>,
|
||||
@SerialName("join_requests") var join: List<GroupRequest>,
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user