From 0c5dcec7bcae47c8fb9c750b2c91871b3b38e618 Mon Sep 17 00:00:00 2001 From: liankong Date: Tue, 1 Apr 2025 14:57:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8DKPM?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zako/sukisu/ui/viewmodel/KpmViewModel.kt | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/viewmodel/KpmViewModel.kt b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/viewmodel/KpmViewModel.kt index 36320e49..e72c2a14 100644 --- a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/viewmodel/KpmViewModel.kt +++ b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/viewmodel/KpmViewModel.kt @@ -70,16 +70,21 @@ class KpmViewModel : ViewModel() { val info = getKpmModuleInfo(name) if (info.isBlank()) return null - val properties = info.lines() - .filter { it.isNotBlank() && !it.startsWith("#") } - .associate { line -> - val parts = line.split("=", limit = 2) - if (parts.size == 2) { - parts[0].trim() to parts[1].trim() - } else { - parts[0].trim() to "" + val properties = info.lineSequence() // 使用序列提升大文本性能 + .filter { line -> + val trimmed = line.trim() + trimmed.isNotEmpty() && !trimmed.startsWith("#") + } + .mapNotNull { line -> + line.split("=", limit = 2).let { parts -> + when (parts.size) { + 2 -> parts[0].trim() to parts[1].trim() + 1 -> parts[0].trim() to "" + else -> null // 忽略无效行 + } } } + .toMap() return ModuleInfo( id = name, @@ -88,8 +93,8 @@ class KpmViewModel : ViewModel() { author = properties["author"] ?: "unknown", description = properties["description"] ?: "", args = properties["args"] ?: "", - enabled = true, // 默认启用 - hasAction = properties["has_action"]?.toBoolean() ?: false + enabled = true, + hasAction = true ) }