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
|
// GroupActions
|
||||||
ModifyTroopName, LeaveTroop, KickTroopMember, BanTroopMember, SetGroupWholeBan, SetGroupAdmin,
|
ModifyTroopName, LeaveTroop, KickTroopMember, BanTroopMember, SetGroupWholeBan, SetGroupAdmin,
|
||||||
ModifyTroopMemberName, SetGroupUnique, GetTroopHonor, GroupPoke, SetEssenceMessage, DeleteEssenceMessage,
|
ModifyTroopMemberName, SetGroupUnique, GetTroopHonor, GroupPoke, SetEssenceMessage, DeleteEssenceMessage,
|
||||||
|
GetGroupSystemMsg,
|
||||||
|
|
||||||
// MSG ACTIONS
|
// MSG ACTIONS
|
||||||
SendMessage, DeleteMessage, GetMsg, GetForwardMsg, SendGroupForwardMsg, SendGroupMessage, SendPrivateMessage,
|
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)
|
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("unfriendly") val unfriendly: Boolean,
|
||||||
@SerialName("card_changeable") val cardChangeable: 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