chore: update compiler command
This commit is contained in:
3 files changed
+22
-13
No files matched your search
@@ -1,6 +1,6 @@
|
|||||||
[versions]
|
[versions]
|
||||||
kotlinVersion = "2.0.10"
|
kotlinVersion = "2.0.10"
|
||||||
ronebotVersion = "1.12.2"
|
ronebotVersion = "1.12.4"
|
||||||
shadowVersion = "8.3.0"
|
shadowVersion = "8.3.0"
|
||||||
okhttpVersion = "5.0.0-alpha.14"
|
okhttpVersion = "5.0.0-alpha.14"
|
||||||
exposedVersion = "0.53.0"
|
exposedVersion = "0.53.0"
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ import cn.rtast.rob.util.BaseCommand
|
|||||||
import cn.rtast.rob.util.ob.MessageChain
|
import cn.rtast.rob.util.ob.MessageChain
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
import cn.rtast.rob.util.ob.OneBotListener
|
||||||
|
|
||||||
@CommandDescription("执行不同语言的代码片段")
|
@CommandDescription("执行不同语言的代码")
|
||||||
class CompilerCommand : BaseCommand() {
|
class CompilerCommand : BaseCommand() {
|
||||||
override val commandNames = listOf("/compiler", "/exec")
|
override val commandNames = listOf("/compiler", "/exec", "/e")
|
||||||
|
|
||||||
private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run"
|
private val kotlinCompilerServer = "https://api.kotlinlang.org/api/2.0.20/compiler/run"
|
||||||
private val glotCompilerServer = "https://glot.io/run"
|
private val glotCompilerServer = "https://glot.io/run"
|
||||||
@@ -31,16 +31,22 @@ class CompilerCommand : BaseCommand() {
|
|||||||
message.reply("使用`/exec` <语言> <代码> 即可执行~")
|
message.reply("使用`/exec` <语言> <代码> 即可执行~")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val language = args.first()
|
var language = args.first()
|
||||||
val code = args.drop(1).joinToString(" ")
|
val code = args.drop(1).joinToString(" ")
|
||||||
val response = when (language) {
|
val response = when (language) {
|
||||||
"kotlin", "Kotlin", "kt", "Kt", "KT" -> {
|
"kotlin", "Kotlin", "kt", "Kt", "KT" -> {
|
||||||
Http.post<KCSResponse>(
|
Http.post<KCSResponse>(
|
||||||
kotlinCompilerServer, jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson()
|
kotlinCompilerServer,
|
||||||
|
jsonBody = KCSPayload(listOf(KCSPayload.File(code))).toJson()
|
||||||
).text
|
).text
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
|
if (language == "js") language = "javascript"
|
||||||
|
if (language == "cs") language = "csharp"
|
||||||
|
if (language == "sh") language = "bash"
|
||||||
|
if (language == "asm") language = "assembly"
|
||||||
|
if (language == "py") language = "python"
|
||||||
Http.post<GLOTResponse>(
|
Http.post<GLOTResponse>(
|
||||||
"$glotCompilerServer/$language",
|
"$glotCompilerServer/$language",
|
||||||
params = mapOf("version" to "latest"),
|
params = mapOf("version" to "latest"),
|
||||||
@@ -48,6 +54,7 @@ class CompilerCommand : BaseCommand() {
|
|||||||
).stdout
|
).stdout
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
try {
|
||||||
val msg = MessageChain.Builder()
|
val msg = MessageChain.Builder()
|
||||||
.addReply(message.messageId)
|
.addReply(message.messageId)
|
||||||
.addText("执行结果如下:")
|
.addText("执行结果如下:")
|
||||||
@@ -55,5 +62,8 @@ class CompilerCommand : BaseCommand() {
|
|||||||
.addText(response.replace("<outStream>", "").replace("</outStream>", ""))
|
.addText(response.replace("<outStream>", "").replace("</outStream>", ""))
|
||||||
.build()
|
.build()
|
||||||
listener.sendGroupMessage(message.groupId, msg)
|
listener.sendGroupMessage(message.groupId, msg)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
message.reply("执行错误: ${e.message}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@ object CalculateCommand {
|
|||||||
return try {
|
return try {
|
||||||
engine.eval(input)
|
engine.eval(input)
|
||||||
} catch (_: ScriptException) {
|
} catch (_: ScriptException) {
|
||||||
"Invalid expression"
|
|
||||||
return null
|
return null
|
||||||
}.toString()
|
}.toString()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user