From 52b8db70be59bd009c85ed6f2e68b582dcab1703 Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Tue, 31 Oct 2023 13:47:49 +0800 Subject: [PATCH] =?UTF-8?q?`Shamrock`:=20=E6=9A=97=E9=BB=99=E7=9A=84?= =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=95=E3=82=A3=E3=82=AE=E3=83=A5=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=81=AE=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: WhiteChi --- .../shamrock/remote/api/OtherAction.kt | 24 +++++++++++++++ .../shamrock/remote/service/config/Config.kt | 1 + .../remote/service/config/ShamrockConfig.kt | 29 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/OtherAction.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/OtherAction.kt index 9637615..8900b2a 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/OtherAction.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/OtherAction.kt @@ -8,9 +8,12 @@ import moe.fuqiuluo.shamrock.remote.action.handlers.DownloadFile import moe.fuqiuluo.shamrock.remote.action.handlers.GetDeviceBattery import moe.fuqiuluo.shamrock.remote.action.handlers.GetVersionInfo import moe.fuqiuluo.shamrock.remote.action.handlers.RestartMe +import moe.fuqiuluo.shamrock.remote.entries.Status +import moe.fuqiuluo.shamrock.remote.service.config.ShamrockConfig import moe.fuqiuluo.shamrock.tools.fetchOrNull import moe.fuqiuluo.shamrock.tools.fetchOrThrow import moe.fuqiuluo.shamrock.tools.getOrPost +import moe.fuqiuluo.shamrock.tools.respond fun Routing.otherAction() { @@ -36,4 +39,25 @@ fun Routing.otherAction() { val headers = fetchOrNull("headers") ?: "" call.respondText(DownloadFile(url, threadCnt, headers.split("\r\n"))) } + + getOrPost("/config/set_boolean") { + val key = fetchOrThrow("key") + val value = fetchOrThrow("value").toBooleanStrict() + ShamrockConfig[key] = value + respond(true, Status.Ok, "success") + } + + getOrPost("/config/set_int") { + val key = fetchOrThrow("key") + val value = fetchOrThrow("value").toInt() + ShamrockConfig[key] = value + respond(true, Status.Ok, "success") + } + + getOrPost("/config/set_string") { + val key = fetchOrThrow("key") + val value = fetchOrThrow("value") + ShamrockConfig[key] = value + respond(true, Status.Ok, "success") + } } \ No newline at end of file diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt index a560cb1..d8ebadc 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/Config.kt @@ -9,6 +9,7 @@ data class ServiceConfig( @SerialName("default_token") var defaultToken: String? = null, @SerialName("active_websocket") var activeWebSocket: ConnectionConfig? = null, @SerialName("passive_websocket") var passiveWebSocket: MutableList? = null, + @SerialName("allow-temp-session") var allowTempSession: Boolean = false ) @Serializable diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/ShamrockConfig.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/ShamrockConfig.kt index 38dde5d..bebce44 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/ShamrockConfig.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/config/ShamrockConfig.kt @@ -75,6 +75,10 @@ internal object ShamrockConfig { updateConfig() } + fun allowTempSession(): Boolean { + return Config.allowTempSession + } + fun getGroupMsgRule(): GroupRule? { return Config.rules?.groupRule } @@ -181,4 +185,29 @@ internal object ShamrockConfig { val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") return mmkv.getBoolean("dev", false) } + + operator fun set(key: String, value: String) { + val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") + mmkv.putString(key, value) + } + + operator fun set(key: String, value: Boolean) { + val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") + mmkv.putBoolean(key, value) + } + + operator fun set(key: String, value: Int) { + val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") + mmkv.putInt(key, value) + } + + operator fun set(key: String, value: Long) { + val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") + mmkv.putLong(key, value) + } + + operator fun set(key: String, value: Float) { + val mmkv = MMKVFetcher.mmkvWithId("shamrock_config") + mmkv.putFloat(key, value) + } } \ No newline at end of file