Skip to content

Commit 751d08a

Browse files
committed
2 parents 520b157 + 8d18074 commit 751d08a

File tree

9 files changed

+50
-24
lines changed

9 files changed

+50
-24
lines changed

arona/arona-core/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
id("io.ktor.plugin") version "2.3.7"
66
id("org.jetbrains.kotlin.plugin.serialization") version "1.9.10"
77
}
8-
version = "1.1.15"
8+
version = "1.1.16"
99
application {
1010
mainClass.set("com.diyigemt.arona.ApplicationKt")
1111

Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
package com.diyigemt.arona.arona.config
2-
3-
import com.diyigemt.arona.webui.pluginconfig.PluginWebuiConfig
4-
import kotlinx.serialization.Serializable
5-
6-
@Serializable
7-
data class BaseConfig(
8-
val markdown: MarkdownCompatiblyConfig = MarkdownCompatiblyConfig()
9-
) : PluginWebuiConfig() {
10-
override fun check() {}
11-
}
12-
13-
@Serializable
14-
data class MarkdownCompatiblyConfig(
15-
val enable: Boolean = false // 是否启用md
16-
)
1+
package com.diyigemt.arona.command
2+
3+
import com.diyigemt.arona.webui.pluginconfig.PluginWebuiConfig
4+
import kotlinx.serialization.Serializable
5+
6+
@Serializable
7+
data class BaseConfig(
8+
val markdown: MarkdownCompatiblyConfig = MarkdownCompatiblyConfig()
9+
) : PluginWebuiConfig() {
10+
override fun check() {}
11+
}
12+
13+
@Serializable
14+
data class MarkdownCompatiblyConfig(
15+
val enable: Boolean = false // 是否启用md
16+
)

arona/arona-core/src/main/kotlin/com/diyigemt/arona/command/BuiltInCommands.kt

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import com.diyigemt.arona.database.permission.ContactRole.Companion.DEFAULT_MEMB
1414
import com.diyigemt.arona.database.permission.UserDocument
1515
import com.diyigemt.arona.database.permission.UserDocument.Companion.findUserDocumentByIdOrNull
1616
import com.diyigemt.arona.permission.PermissionService
17+
import com.diyigemt.arona.webui.pluginconfig.PluginWebuiConfigRecorder
1718
import com.github.ajalt.clikt.parameters.arguments.argument
1819

1920
object BuiltInCommands {
@@ -44,6 +45,7 @@ object BuiltInCommands {
4445
BuiltInCommands::class.nestedClasses.forEach {
4546
(it.objectInstance as? Command)?.register()
4647
}
48+
PluginWebuiConfigRecorder.register(BuildInCommandOwner, BaseConfig.serializer())
4749
}
4850

4951
object LoginCommand : AbstractCommand(

arona/arona-core/src/main/kotlin/com/diyigemt/arona/webui/pluginconfig/PluginWebuiConfig.kt

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.diyigemt.arona.webui.pluginconfig
22

3+
import com.diyigemt.arona.command.CommandOwner
34
import com.diyigemt.arona.database.permission.toMongodbKey
45
import com.diyigemt.arona.plugins.AronaPlugin
56
import com.diyigemt.arona.utils.JsonIgnoreUnknownKeys
@@ -28,6 +29,15 @@ object PluginWebuiConfigRecorder {
2829
}
2930
}
3031
@OptIn(ExperimentalSerializationApi::class)
32+
fun register(owner: CommandOwner, serializer: KSerializer<*>) {
33+
val key = serializer.descriptor.serialName.split(".").last()
34+
map.getOrPut(owner.permission.id.nameSpace.toMongodbKey()) {
35+
mutableMapOf(key to serializer)
36+
}.also {
37+
it[key] = serializer
38+
}
39+
}
40+
@OptIn(ExperimentalSerializationApi::class)
3141
@Suppress("UNCHECKED_CAST")
3242
fun checkDataSafety(obj: PluginPreferenceResp): String? {
3343
val serializer = getSerializer(obj.id, obj.key) ?: return null

arona/arona-plugin/arona/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
val projectMainClass = "com.diyigemt.arona.arona.Arona"
10-
version = "1.1.0"
10+
version = "1.1.1"
1111
dependencies {
1212
compileOnly(project(":arona-core"))
1313
compileOnly("io.ktor:ktor-server-core-jvm")

arona/arona-plugin/arona/src/main/kotlin/com/diyigemt/arona/arona/Main.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ object Arona : AronaPlugin(
1717
id = "com.diyigemt.arona",
1818
name = "arona",
1919
author = "diyigemt",
20-
version = "1.1.0",
20+
version = "1.1.1",
2121
description = "hello world"
2222
)
2323
) {

arona/arona-plugin/arona/src/main/kotlin/com/diyigemt/arona/arona/command/TrainerCommand.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.diyigemt.arona.arona.command
22

33
import com.diyigemt.arona.arona.Arona
4-
import com.diyigemt.arona.arona.config.BaseConfig
54
import com.diyigemt.arona.arona.database.DatabaseProvider.dbQuery
65
import com.diyigemt.arona.arona.database.image.ImageCacheSchema.Companion.findImage
76
import com.diyigemt.arona.arona.database.image.contactType
@@ -10,6 +9,8 @@ import com.diyigemt.arona.arona.tools.BackendEndpoint
109
import com.diyigemt.arona.arona.tools.NetworkTool
1110
import com.diyigemt.arona.arona.tools.ServerResponse
1211
import com.diyigemt.arona.command.AbstractCommand
12+
import com.diyigemt.arona.command.BaseConfig
13+
import com.diyigemt.arona.command.BuildInCommandOwner
1314
import com.diyigemt.arona.command.nextMessage
1415
import com.diyigemt.arona.communication.command.UserCommandSender
1516
import com.diyigemt.arona.communication.command.UserCommandSender.Companion.readPluginConfigOrDefault
@@ -129,7 +130,7 @@ object TrainerCommand : AbstractCommand(
129130
getImage(match).run {
130131
data?.run r1@{
131132
if (code != 200) {
132-
val mdConfig = readUserPluginConfigOrDefault(Arona, default = BaseConfig()).markdown
133+
val mdConfig = readUserPluginConfigOrDefault(BuildInCommandOwner, default = BaseConfig()).markdown
133134
if (mdConfig.enable) {
134135
val md = TencentTemplateMarkdown("102057194_1702305572") {
135136
append("search_target", match)

arona/arona-plugin/custom-menu/src/main/kotlin/com/diyigemt/arona/custom/menu/Main.kt

+15-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
package com.diyigemt.arona.custom.menu
44

55
import com.diyigemt.arona.command.AbstractCommand
6+
import com.diyigemt.arona.command.BaseConfig
7+
import com.diyigemt.arona.command.BuildInCommandOwner
68
import com.diyigemt.arona.communication.command.UserCommandSender
9+
import com.diyigemt.arona.communication.command.UserCommandSender.Companion.readUserPluginConfigOrDefault
710
import com.diyigemt.arona.communication.command.UserCommandSender.Companion.readUserPluginConfigOrNull
811
import com.diyigemt.arona.communication.message.*
912
import com.diyigemt.arona.plugins.AronaPlugin
@@ -105,14 +108,24 @@ object CustomMenuCommand : AbstractCommand(
105108
PluginMain, "菜单", description = "提供快捷菜单, 或者默认菜单"
106109
) {
107110
suspend fun UserCommandSender.menu() {
111+
val mdConfig = readUserPluginConfigOrDefault(BuildInCommandOwner, default = BaseConfig()).markdown
112+
if (!mdConfig.enable) {
113+
sendMessage(MessageChainBuilder()
114+
.append("请先在webui开启markdown支持")
115+
.append("需要NTQQ或QQ8.9.85以上版本才能显示")
116+
.append("文档: https://doc.arona.diyigemt.com/v2/manual/webui")
117+
.append("webui仅支持桌面端,未对移动端适配")
118+
.build()
119+
)
120+
return
121+
}
108122
val menu = readUserPluginConfigOrNull<CustomMenuConfig>(PluginMain)
109123
val md = TencentTemplateMarkdown("102057194_1708227032") {
110124
append("title", if (menu == null) "默认菜单" else "快捷菜单")
111125
append("content", " ")
112126
append("footer", " ")
113127
}
114-
val kb = TencentTempleKeyboard("102057194_1708226882")
115-
// val kb = (menu ?: CustomMenuConfig.DefaultMenu).toCustomKeyboard()
128+
val kb = (menu ?: CustomMenuConfig.DefaultMenu).toCustomKeyboard()
116129
sendMessage(MessageChainBuilder().append(md).append(kb).build())
117130
}
118131
}

arona/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55

66
allprojects {
77
group = "com.diyigemt.arona"
8-
version = "0.1.12"
8+
version = "1.2.0"
99
// gradle.taskGraph.whenReady {
1010
// tasks.forEach { task ->
1111
// if (task.name.contains("test")) {

0 commit comments

Comments
 (0)