From f2dc3bc9fd5d282058bc7ab81ad6a90de124743d Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Thu, 16 Nov 2023 11:23:31 +0800 Subject: [PATCH] `Shamrock`: fix #45 --- .../fuqiuluo/shamrock/remote/action/ActionManager.kt | 12 ++++++------ .../shamrock/remote/action/handlers/GetFriendList.kt | 2 +- .../remote/action/handlers/GetOnlineClients.kt | 2 +- .../shamrock/remote/action/handlers/GetTroopList.kt | 2 +- .../remote/action/handlers/GetTroopMemberList.kt | 2 +- .../main/java/moe/fuqiuluo/shamrock/tools/Json.kt | 3 ++- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/ActionManager.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/ActionManager.kt index 1fc59b3..a110a29 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/ActionManager.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/ActionManager.kt @@ -98,16 +98,16 @@ internal abstract class IActionHandler { return failed(Status.BadParam, why, echo) } - protected fun error(why: String, echo: JsonElement): String { - return failed(Status.InternalHandlerError, why, echo) + protected fun error(why: String, echo: JsonElement, arrayResult: Boolean = false): String { + return failed(Status.InternalHandlerError, why, echo, arrayResult) } - protected fun logic(why: String, echo: JsonElement): String { - return failed(Status.LogicError, why, echo) + protected fun logic(why: String, echo: JsonElement, arraayResult: Boolean = false): String { + return failed(Status.LogicError, why, echo, arraayResult) } - protected fun failed(status: Status, msg: String, echo: JsonElement): String { - return resultToString(false, status, EmptyObject, msg, echo = echo) + protected fun failed(status: Status, msg: String, echo: JsonElement, arrResult: Boolean = false): String { + return resultToString(false, status, if (arrResult) EmptyJsonArray else EmptyJsonObject, msg, echo = echo) } } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFriendList.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFriendList.kt index d309735..97d9462 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFriendList.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFriendList.kt @@ -16,7 +16,7 @@ internal object GetFriendList: IActionHandler() { suspend operator fun invoke(refresh: Boolean, echo: JsonElement = EmptyJsonString): String { val friendList = FriendSvc.getFriendList(refresh).onFailure { - return error(it.message ?: "unknown error", echo) + return error(it.message ?: "unknown error", echo, arrayResult = true) }.getOrThrow() return ok(friendList.map { friend -> FriendEntry( diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetOnlineClients.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetOnlineClients.kt index 2b2dfc1..8e8f97e 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetOnlineClients.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetOnlineClients.kt @@ -15,7 +15,7 @@ internal object GetOnlineClients: IActionHandler() { suspend operator fun invoke(echo: JsonElement = EmptyJsonString): String { val clients = QSafeSvc.getOnlineClients() - ?: return logic("获取在线设备信息失败", echo) + ?: return logic("获取在线设备信息失败", echo, arraayResult = true) return ok(clients.map { DevInfo(it.iAppId, it.strDeviceName, it.strDeviceTypeInfo, it.iLoginTime, it.iLoginPlatform, it.strLoginLocation diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopList.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopList.kt index f70f4e0..aa570b1 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopList.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopList.kt @@ -16,7 +16,7 @@ internal object GetTroopList : IActionHandler() { suspend operator fun invoke(refresh: Boolean, echo: JsonElement = EmptyJsonString): String { val troopList = arrayListOf() GroupSvc.getGroupList(refresh).onFailure { - return error(it.message ?: "unknown error", echo) + return error(it.message ?: "unknown error", echo, arrayResult = true) }.onSuccess { troops -> troops.forEach { groupInfo -> if (groupInfo.troopcode.isNullOrEmpty()) return@forEach diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopMemberList.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopMemberList.kt index cd992d8..6138cdf 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopMemberList.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetTroopMemberList.kt @@ -23,7 +23,7 @@ internal object GetTroopMemberList : IActionHandler() { echo: JsonElement = EmptyJsonString ): String { val memberList = GroupSvc.getGroupMemberList(groupId, refresh).onFailure { - return error(it.message ?: "unknown error", echo) + return error(it.message ?: "unknown error", echo, arrayResult = true) }.getOrThrow() return ok(arrayListOf().apply { diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/tools/Json.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/tools/Json.kt index 2ed9189..e587f3d 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/tools/Json.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/tools/Json.kt @@ -14,7 +14,8 @@ import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.long -val EmptyJsonObject = JsonObject(mapOf()) +val EmptyJsonObject = JsonObject(emptyMap()) +val EmptyJsonArray = JsonArray(emptyList()) val EmptyJsonString = "".json val GlobalJson = Json {