From 2770979fee1feb8b1ed1963b4097d5df2ccf760a Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 02:55:47 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E6=96=B0=E5=A2=9Eget=5Ffile=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=B8=BB=E8=A6=81=E8=A7=A3=E5=86=B3=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=8F=8D=E5=90=91websocket=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E9=BA=BB=E7=83=A6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E7=9B=AE=E5=89=8D=E4=BB=85=E6=94=AF?= =?UTF-8?q?=E6=8C=81base64=E7=9A=84type=E8=BF=94=E5=9B=9E=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E6=9D=A5=E5=B0=86=E6=94=AF=E6=8C=81=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=B5=8B=E8=AF=95=E5=90=8E=E5=B0=86?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E8=87=B3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/action/handlers/GetFile.kt | 45 +++++++++++++++++++ .../remote/service/data/ResourceData.kt | 6 +++ 2 files changed, 51 insertions(+) create mode 100644 xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt new file mode 100644 index 00000000..b8cc36a4 --- /dev/null +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -0,0 +1,45 @@ +package moe.fuqiuluo.shamrock.remote.action.handlers + +import kotlinx.serialization.json.JsonElement +import moe.fuqiuluo.shamrock.remote.action.ActionSession +import moe.fuqiuluo.shamrock.remote.action.IActionHandler +import moe.fuqiuluo.shamrock.remote.service.data.OutResource +import moe.fuqiuluo.shamrock.remote.service.data.OutResourceByBase64 +import moe.fuqiuluo.shamrock.tools.EmptyJsonString +import moe.fuqiuluo.shamrock.utils.AudioUtils +import moe.fuqiuluo.shamrock.utils.FileUtils +import moe.fuqiuluo.symbols.OneBotHandler +import java.util.Base64 + +@OneBotHandler("get_file") internal object GetFile : IActionHandler() { + override suspend fun internalHandle(session: ActionSession): String { + val file = session.getString("file") + .replace(regex = "[{}\\-]".toRegex(), replacement = "") + .replace(" ", "") + .split(".")[0].lowercase() + val fileType = session.getString("file_type") + return invoke(file, fileType, session.echo) + } + + operator fun invoke(file: String, fileType: String, echo: JsonElement = EmptyJsonString): String { + val targetFile = FileUtils.getFileByMd5(file) + return if (targetFile.exists()) { + when (fileType) { + "base64" -> ok( + OutResourceByBase64( + "/res/${targetFile.nameWithoutExtension}", + Base64.getEncoder() + .encodeToString(targetFile.readBytes()), + ), echo + ) + + else -> error("only support base64", echo) + } + + } else { + error("not found record file from md5", echo) + } + } + + override val requiredParams: Array = arrayOf("file", "file_type") +} \ No newline at end of file diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt index 211a1cb0..11532955 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt @@ -1,9 +1,15 @@ package moe.fuqiuluo.shamrock.remote.service.data import kotlinx.serialization.Serializable +import java.util.Base64 @Serializable internal data class OutResource( val file: String, val url: String +) + +internal data class OutResourceByBase64( + val file: String, + val base64String: String, ) \ No newline at end of file From 3664352f23fce499fccdb9e5b08540b181a5b1f2 Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 03:05:28 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=96=B0=E5=A2=9Eget=5Ffile=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=B8=BB=E8=A6=81=E8=A7=A3=E5=86=B3=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=8F=8D=E5=90=91websocket=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E9=BA=BB=E7=83=A6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E7=9B=AE=E5=89=8D=E4=BB=85=E6=94=AF?= =?UTF-8?q?=E6=8C=81base64=E7=9A=84type=E8=BF=94=E5=9B=9E=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E6=9D=A5=E5=B0=86=E6=94=AF=E6=8C=81=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=B5=8B=E8=AF=95=E5=90=8E=E5=B0=86?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E8=87=B3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 4 +--- .../java/moe/fuqiuluo/shamrock/remote/api/ResourceAction.kt | 6 ++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index b8cc36a4..a2e2a4f3 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -3,10 +3,8 @@ package moe.fuqiuluo.shamrock.remote.action.handlers import kotlinx.serialization.json.JsonElement import moe.fuqiuluo.shamrock.remote.action.ActionSession import moe.fuqiuluo.shamrock.remote.action.IActionHandler -import moe.fuqiuluo.shamrock.remote.service.data.OutResource import moe.fuqiuluo.shamrock.remote.service.data.OutResourceByBase64 import moe.fuqiuluo.shamrock.tools.EmptyJsonString -import moe.fuqiuluo.shamrock.utils.AudioUtils import moe.fuqiuluo.shamrock.utils.FileUtils import moe.fuqiuluo.symbols.OneBotHandler import java.util.Base64 @@ -17,7 +15,7 @@ import java.util.Base64 .replace(regex = "[{}\\-]".toRegex(), replacement = "") .replace(" ", "") .split(".")[0].lowercase() - val fileType = session.getString("file_type") + val fileType = session.getString("type") return invoke(file, fileType, session.echo) } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/ResourceAction.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/ResourceAction.kt index 5e6629f8..f553edb7 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/ResourceAction.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/api/ResourceAction.kt @@ -26,6 +26,12 @@ fun Routing.fetchRes() { call.respondText(GetRecord(file, format), ContentType.Application.Json) } + getOrPost("/get_file") { + val file = formatFileName( fetchGetOrThrow("file") ) + val fileType = fetchOrThrow("file_type") + call.respondText(GetFile(file, fileType), ContentType.Application.Json) + } + getOrPost("/get_image") { val file = formatFileName( fetchGetOrThrow("file") ) call.respondText(GetImage(file), ContentType.Application.Json) From a3dc0d06b26cec3e36333755fdc805ad926a6371 Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 03:17:36 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=96=B0=E5=A2=9Eget=5Ffile=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=8C=E4=B8=BB=E8=A6=81=E8=A7=A3=E5=86=B3=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=8F=8D=E5=90=91websocket=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E9=BA=BB=E7=83=A6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E7=9B=AE=E5=89=8D=E4=BB=85=E6=94=AF?= =?UTF-8?q?=E6=8C=81base64=E7=9A=84type=E8=BF=94=E5=9B=9E=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E6=9D=A5=E5=B0=86=E6=94=AF=E6=8C=81=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=B5=8B=E8=AF=95=E5=90=8E=E5=B0=86?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E8=87=B3=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fuqiuluo/shamrock/remote/service/data/ResourceData.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt index 11532955..861d0730 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt @@ -3,13 +3,11 @@ package moe.fuqiuluo.shamrock.remote.service.data import kotlinx.serialization.Serializable import java.util.Base64 -@Serializable -internal data class OutResource( - val file: String, - val url: String +@Serializable internal data class OutResource( + val file: String, val url: String ) -internal data class OutResourceByBase64( +@Serializable internal data class OutResourceByBase64( val file: String, val base64String: String, ) \ No newline at end of file From bdb75841cf8e688449fa1a12d1f7280251f3949b Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 03:23:11 +0800 Subject: [PATCH 04/10] =?UTF-8?q?AGP=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6561f5bc..bd278cb6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.2.0" apply false + id("com.android.application") version "8.2.1" apply false id("org.jetbrains.kotlin.android") version "1.9.22" apply false - id("com.android.library") version "8.2.0" apply false + id("com.android.library") version "8.2.1" apply false } From 5adfc544a2f2e734c2f4e11c2c15201864a0bf22 Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 03:46:51 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E4=BF=AE=E6=AD=A3file=5Ftype=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=B8=8D=E6=AD=A3=E7=A1=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index a2e2a4f3..a3bfb810 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -15,7 +15,7 @@ import java.util.Base64 .replace(regex = "[{}\\-]".toRegex(), replacement = "") .replace(" ", "") .split(".")[0].lowercase() - val fileType = session.getString("type") + val fileType = session.getString("file_type") return invoke(file, fileType, session.echo) } From ea206faf4fbf2fcd0135223aa13d9867de5ea9be Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 04:07:11 +0800 Subject: [PATCH 06/10] =?UTF-8?q?get=5Frecord=E7=9A=84ws=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E7=9A=84md5=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=90=8E=E7=BB=ADget=5Ffile=E6=8B=BF?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shamrock/remote/action/handlers/GetRecord.kt | 13 ++++++------- .../shamrock/remote/service/data/ResourceData.kt | 5 ++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetRecord.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetRecord.kt index e5bb42e8..47ace91f 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetRecord.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetRecord.kt @@ -9,8 +9,7 @@ import moe.fuqiuluo.shamrock.tools.EmptyJsonString import moe.fuqiuluo.shamrock.utils.AudioUtils import moe.fuqiuluo.symbols.OneBotHandler -@OneBotHandler("get_record") -internal object GetRecord: IActionHandler() { +@OneBotHandler("get_record") internal object GetRecord : IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { val file = session.getString("file") .replace(regex = "[{}\\-]".toRegex(), replacement = "") @@ -22,17 +21,17 @@ internal object GetRecord: IActionHandler() { operator fun invoke(file: String, format: String, echo: JsonElement = EmptyJsonString): String { val pttFile = LocalCacheHelper.getCachePttFile(file) - return if(pttFile.exists()) { + return if (pttFile.exists()) { val isSilk = AudioUtils.isSilk(pttFile) - val audioFile = when(format) { + val audioFile = when (format) { "amr" -> AudioUtils.audioToAmr(pttFile, isSilk) else -> AudioUtils.audioToFormat(pttFile, isSilk, format) } ok( OutResource( - audioFile.toString(), - url = "/res/${audioFile.nameWithoutExtension}" - ), echo) + audioFile.toString(), url = "/res/${audioFile.nameWithoutExtension}", md5 = audioFile.nameWithoutExtension + ), echo + ) } else { error("not found record file from cache", echo) } diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt index 861d0730..a0607128 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/ResourceData.kt @@ -4,10 +4,13 @@ import kotlinx.serialization.Serializable import java.util.Base64 @Serializable internal data class OutResource( - val file: String, val url: String + val file: String, + val url: String, + val md5: String, ) @Serializable internal data class OutResourceByBase64( val file: String, val base64String: String, + val md5: String, ) \ No newline at end of file From 5e819179b488a2a1a1ae3bd881b214b4e5c88d54 Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 04:08:07 +0800 Subject: [PATCH 07/10] =?UTF-8?q?get=5Frecord=E7=9A=84ws=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E7=9A=84md5=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=90=8E=E7=BB=ADget=5Ffile=E6=8B=BF?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index a3bfb810..48f797a1 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -28,6 +28,7 @@ import java.util.Base64 "/res/${targetFile.nameWithoutExtension}", Base64.getEncoder() .encodeToString(targetFile.readBytes()), + targetFile.nameWithoutExtension, ), echo ) From f030104ff213a43712b52491053c73de106fbb1c Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 13:23:20 +0800 Subject: [PATCH 08/10] =?UTF-8?q?get=5Frecord=E7=9A=84ws=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E5=8D=95=E7=8B=AC=E7=9A=84md5=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E5=90=8E=E7=BB=ADget=5Ffile=E6=8B=BF?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index 48f797a1..a1e9509f 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -19,7 +19,7 @@ import java.util.Base64 return invoke(file, fileType, session.echo) } - operator fun invoke(file: String, fileType: String, echo: JsonElement = EmptyJsonString): String { + operator fun invoke(file: String, fileType: String = "base64", echo: JsonElement = EmptyJsonString): String { val targetFile = FileUtils.getFileByMd5(file) return if (targetFile.exists()) { when (fileType) { From 8c332678878596f6d197074b4f3b9f49ce814c54 Mon Sep 17 00:00:00 2001 From: tuuz Date: Mon, 18 Mar 2024 13:30:18 +0800 Subject: [PATCH 09/10] =?UTF-8?q?fileType=E5=8A=A0=E5=85=A5=E7=A9=BA?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=EF=BC=8C=E5=8F=AF=E6=94=AF=E6=8C=81=E7=A9=BA?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index a1e9509f..d8d80bc5 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -23,7 +23,7 @@ import java.util.Base64 val targetFile = FileUtils.getFileByMd5(file) return if (targetFile.exists()) { when (fileType) { - "base64" -> ok( + "base64", "" -> ok( OutResourceByBase64( "/res/${targetFile.nameWithoutExtension}", Base64.getEncoder() From 0cf10eabd6784e932da071ccad40733ed1a08cac Mon Sep 17 00:00:00 2001 From: ikechan8370 Date: Mon, 18 Mar 2024 13:34:13 +0800 Subject: [PATCH 10/10] fix: set field `file_type` not required --- .../fuqiuluo/shamrock/remote/action/handlers/GetFile.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt index d8d80bc5..844d4f0c 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/GetFile.kt @@ -9,13 +9,14 @@ import moe.fuqiuluo.shamrock.utils.FileUtils import moe.fuqiuluo.symbols.OneBotHandler import java.util.Base64 -@OneBotHandler("get_file") internal object GetFile : IActionHandler() { +@OneBotHandler("get_file") +internal object GetFile : IActionHandler() { override suspend fun internalHandle(session: ActionSession): String { val file = session.getString("file") .replace(regex = "[{}\\-]".toRegex(), replacement = "") .replace(" ", "") .split(".")[0].lowercase() - val fileType = session.getString("file_type") + val fileType = session.getStringOrNull("file_type") ?: "base64" return invoke(file, fileType, session.echo) } @@ -40,5 +41,5 @@ import java.util.Base64 } } - override val requiredParams: Array = arrayOf("file", "file_type") -} \ No newline at end of file + override val requiredParams: Array = arrayOf("file") +}