3 Commits

Author SHA1 Message Date
b3d853dec3 Shamrock: support original for Image 2024-01-30 00:49:33 +08:00
e0a4aad3cd Shamrock: fix QuickOperation 2024-01-30 00:38:14 +08:00
328e656859 Shamrock: try fix #214 2024-01-30 00:25:32 +08:00
6 changed files with 17 additions and 8 deletions

View File

@ -335,7 +335,7 @@ internal object GroupSvc: BaseSvc() {
sendOidb("OidbSvc.0x570_8", 1392, 8, array)
}
fun kickMember(groupId: Long, rejectAddRequest: Boolean, vararg memberUin: Long) {
fun kickMember(groupId: Long, rejectAddRequest: Boolean, kickMsg: String, vararg memberUin: Long) {
val reqBody = oidb_0x8a0.ReqBody()
reqBody.opt_uint64_group_code.set(groupId)
@ -346,6 +346,9 @@ internal object GroupSvc: BaseSvc() {
memberInfo.opt_uint32_flag.set(if (rejectAddRequest) 1 else 0)
reqBody.rpt_msg_kick_list.add(memberInfo)
}
if (kickMsg.isNotEmpty()) {
reqBody.bytes_kick_msg.set(ByteStringMicro.copyFrom(kickMsg.toByteArray()))
}
sendOidb("OidbSvc.0x8a0_0", 2208, 0, reqBody.toByteArray())
}

View File

@ -123,7 +123,7 @@ internal sealed class MessageElemConverter: IMessageConvert {
else -> unknownChatType(chatType)
},
"subType" to image.picSubType,
"type" to if (image.isFlashPic) "flash" else "show"
"type" to if (image.isFlashPic) "flash" else if(image.original) "original" else "show"
)
)
}

View File

@ -12,13 +12,14 @@ internal object KickTroopMember: IActionHandler() {
override suspend fun internalHandle(session: ActionSession): String {
val groupId = session.getLong("group_id")
val userId = session.getLong("user_id")
val kickMsg = session.getStringOrNull("kick_msg") ?: ""
val rejectAddRequest = session.getBooleanOrDefault("reject_add_request", false)
return invoke(groupId, userId, rejectAddRequest, session.echo)
return invoke(groupId, userId, rejectAddRequest, kickMsg, session.echo)
}
operator fun invoke(groupId: Long, userId: Long, rejectAddRequest: Boolean = false, echo: JsonElement = EmptyJsonString): String {
GroupSvc.kickMember(groupId, rejectAddRequest, userId)
operator fun invoke(groupId: Long, userId: Long, rejectAddRequest: Boolean = false, kickMsg: String, echo: JsonElement = EmptyJsonString): String {
GroupSvc.kickMember(groupId, rejectAddRequest, kickMsg, userId)
return ok("成功", echo)
}

View File

@ -96,7 +96,7 @@ internal object QuickOperation: IActionHandler() {
MsgSvc.recallMsg(msgHash)
}
if (MsgConstant.KCHATTYPEGROUP == record.chatType && operation.containsKey("kick") && operation["kick"].asBoolean) {
GroupSvc.kickMember(record.peerUin, false, record.senderUin)
GroupSvc.kickMember(record.peerUin, false, "", record.senderUin)
}
if (MsgConstant.KCHATTYPEGROUP == record.chatType && operation.containsKey("ban") && operation["ban"].asBoolean) {
val banTime = operation["ban_duration"].asIntOrNull ?: (30 * 60)

View File

@ -120,7 +120,12 @@ fun Routing.troopAction() {
getOrPost("/set_group_kick") {
val userId = fetchOrThrow("user_id").toLong()
val groupId = fetchOrThrow("group_id").toLong()
call.respondText(KickTroopMember(groupId, userId), ContentType.Application.Json)
val kickMsg = fetchOrNull("kick_msg") ?: ""
val rejectAddRequest = when(fetchGetOrNull("reject_add_request")) {
"1", "true" -> true
else -> false
}
call.respondText(KickTroopMember(groupId, userId, rejectAddRequest, kickMsg), ContentType.Application.Json)
}
getOrPost("/set_essence_msg") {

View File

@ -113,7 +113,7 @@ internal object HttpService: HttpTransmitServlet() {
MsgSvc.recallMsg(msgHash)
}
if (MsgConstant.KCHATTYPEGROUP == record.chatType && data.containsKey("kick") && data["kick"].asBoolean) {
GroupSvc.kickMember(record.peerUin, false, record.senderUin)
GroupSvc.kickMember(record.peerUin, false, "", record.senderUin)
}
if (MsgConstant.KCHATTYPEGROUP == record.chatType && data.containsKey("ban") && data["ban"].asBoolean) {
val banTime = data["ban_duration"].asIntOrNull ?: (30 * 60)