From 57885473bd9b1921acbe12200f17ae5012db9f81 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Wed, 2 Oct 2024 21:02:05 +0800 Subject: [PATCH] feat: add command execute record in db --- build.gradle.kts | 2 + gradle/libs.versions.toml | 3 ++ src/main/kotlin/cn/rtast/fancybot/Const.kt | 4 +- src/main/kotlin/cn/rtast/fancybot/FancyBot.kt | 2 +- .../cn/rtast/fancybot/commands/EchoCommand.kt | 3 ++ .../rtast/fancybot/commands/StatusCommand.kt | 3 ++ .../fancybot/commands/lookup/AICommand.kt | 4 ++ .../fancybot/commands/lookup/QRCodeCommand.kt | 27 ------------ .../commands/lookup/WikipediaCommand.kt | 4 ++ .../commands/misc/AntiRevokeCommand.kt | 4 ++ .../fancybot/commands/misc/CompilerCommand.kt | 4 ++ .../fancybot/commands/misc/QRCodeCommand.kt | 44 +++++++++++++++++++ .../fancybot/commands/misc/RemakeCommand.kt | 2 +- .../fancybot/commands/misc/SendMailCommand.kt | 3 ++ .../cn/rtast/fancybot/db/ActionTable.kt | 19 ++++++++ .../fancybot/{entity => }/db/JrrpTable.kt | 2 +- .../{entity => }/db/NiuziBankTable.kt | 2 +- .../fancybot/{entity => }/db/NiuziTable.kt | 2 +- .../kotlin/cn/rtast/fancybot/entity/Config.kt | 4 +- .../entity/gpt/ChatCompletionsPayload.kt | 2 +- .../entity/gpt/ChatCompletionsResponse.kt | 2 +- .../cn/rtast/fancybot/enums/CommandAction.kt | 14 ++++++ .../{entity => }/enums/CountryList.kt | 2 +- .../{entity => }/enums/GPTUserRole.kt | 2 +- .../fancybot/{entity => }/enums/ImageType.kt | 2 +- .../fancybot/{entity => }/enums/WSType.kt | 2 +- .../kotlin/cn/rtast/fancybot/util/Database.kt | 8 ++-- .../rtast/fancybot/util/file/ActionManager.kt | 26 +++++++++++ .../rtast/fancybot/util/file/JrrpManager.kt | 4 +- .../fancybot/util/file/NiuziBankManager.kt | 16 +++---- .../rtast/fancybot/util/file/NiuziManager.kt | 12 ++--- 31 files changed, 169 insertions(+), 61 deletions(-) delete mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/lookup/QRCodeCommand.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt create mode 100644 src/main/kotlin/cn/rtast/fancybot/db/ActionTable.kt rename src/main/kotlin/cn/rtast/fancybot/{entity => }/db/JrrpTable.kt (92%) rename src/main/kotlin/cn/rtast/fancybot/{entity => }/db/NiuziBankTable.kt (94%) rename src/main/kotlin/cn/rtast/fancybot/{entity => }/db/NiuziTable.kt (93%) create mode 100644 src/main/kotlin/cn/rtast/fancybot/enums/CommandAction.kt rename src/main/kotlin/cn/rtast/fancybot/{entity => }/enums/CountryList.kt (94%) rename src/main/kotlin/cn/rtast/fancybot/{entity => }/enums/GPTUserRole.kt (77%) rename src/main/kotlin/cn/rtast/fancybot/{entity => }/enums/ImageType.kt (79%) rename src/main/kotlin/cn/rtast/fancybot/{entity => }/enums/WSType.kt (75%) create mode 100644 src/main/kotlin/cn/rtast/fancybot/util/file/ActionManager.kt diff --git a/build.gradle.kts b/build.gradle.kts index c405c80..8a7be25 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -39,6 +39,8 @@ dependencies { implementation(libs.simple.java.mail) implementation(libs.jsoup) implementation(libs.nashorn.core) + implementation(libs.zxing.core) + implementation(libs.zxing.javase) } tasks.build { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a9bd0a5..3f907a6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,6 +10,7 @@ animatedGifLibVersion = "1.4" simpleJavaMailVersion = "8.11.3" jsoupVersion = "1.18.1" nashornVersion = "15.4" +zxingVersion = "3.5.3" [libraries] rOneBot = { group = "cn.rtast", name = "ROneBot", version.ref = "ronebotVersion" } @@ -22,6 +23,8 @@ animated-gif-lib = { group = "com.madgag", name = "animated-gif-lib", version.re simple-java-mail = { group = "org.simplejavamail", name = "simple-java-mail", version.ref = "simpleJavaMailVersion" } jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoupVersion" } nashorn-core = { group = "org.openjdk.nashorn", name = "nashorn-core", version.ref = "nashornVersion" } +zxing-core = { group = "com.google.zxing", name = "core", version.ref = "zxingVersion" } +zxing-javase = { group = "com.google.zxing", name = "javase", version.ref = "zxingVersion" } [bundles] diff --git a/src/main/kotlin/cn/rtast/fancybot/Const.kt b/src/main/kotlin/cn/rtast/fancybot/Const.kt index 448fc33..59a843e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/Const.kt +++ b/src/main/kotlin/cn/rtast/fancybot/Const.kt @@ -20,8 +20,8 @@ import cn.rtast.fancybot.commands.misc.JrrpCommand import cn.rtast.fancybot.commands.niuzi.NiuziRedeemCommand import cn.rtast.fancybot.commands.misc.ShortLinkCommand import cn.rtast.fancybot.entity.Config -import cn.rtast.fancybot.entity.enums.ImageType -import cn.rtast.fancybot.entity.enums.WSType +import cn.rtast.fancybot.enums.ImageType +import cn.rtast.fancybot.enums.WSType import cn.rtast.fancybot.items.* import cn.rtast.fancybot.util.file.ConfigManager import cn.rtast.fancybot.util.file.NiuziBankManager diff --git a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt index dc7466b..2280bcd 100644 --- a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt +++ b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt @@ -8,7 +8,7 @@ package cn.rtast.fancybot import cn.rtast.fancybot.commands.parse.* -import cn.rtast.fancybot.entity.enums.WSType +import cn.rtast.fancybot.enums.WSType import cn.rtast.fancybot.util.initDatabase import cn.rtast.rob.ROneBotFactory import cn.rtast.rob.entity.* diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/EchoCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/EchoCommand.kt index ae325b6..5aeed1d 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/EchoCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/EchoCommand.kt @@ -8,6 +8,8 @@ package cn.rtast.fancybot.commands import cn.rtast.fancybot.annotations.CommandDescription +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.OneBotListener @@ -18,5 +20,6 @@ class EchoCommand : BaseCommand() { override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { listener.sendGroupMessage(message.groupId, args.joinToString(" ")) + insertActionRecord(CommandAction.Echo, message.sender.userId) } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/StatusCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/StatusCommand.kt index e678284..61b4559 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/StatusCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/StatusCommand.kt @@ -9,6 +9,8 @@ package cn.rtast.fancybot.commands import cn.rtast.fancybot.START_UP_TIME import cn.rtast.fancybot.annotations.CommandDescription +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain @@ -44,5 +46,6 @@ class StatusCommand : BaseCommand() { .addText("Java版本: $javaVersion / Kotlin版本: $kotlinVersion") .build() message.reply(msg) + insertActionRecord(CommandAction.Status, message.sender.userId) } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/AICommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/AICommand.kt index 425a356..0ba2f17 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/AICommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/AICommand.kt @@ -13,7 +13,9 @@ import cn.rtast.fancybot.entity.gpt.ChatCompletionsPayload import cn.rtast.fancybot.entity.gpt.ChatCompletionsResponse import cn.rtast.fancybot.entity.gpt.LlamaResponse import cn.rtast.fancybot.entity.gpt.ModelList +import cn.rtast.fancybot.enums.CommandAction import cn.rtast.fancybot.util.Http +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.str.toJson import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand @@ -68,6 +70,7 @@ class AICommand : BaseCommand() { .build() nodeMsg.addMessageChain(msg, configManager.selfId) listener.sendGroupForwardMsg(message.groupId, nodeMsg.build()) + insertActionRecord(CommandAction.AI, message.sender.userId, "$content-$model-GPT") } } @@ -94,5 +97,6 @@ class LlamaCommand : BaseCommand() { .build() nodeMsg.addMessageChain(msg, configManager.selfId) listener.sendGroupForwardMsg(message.groupId, nodeMsg.build()) + insertActionRecord(CommandAction.AI, message.sender.userId, "$prompt-LLAMA") } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/QRCodeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/QRCodeCommand.kt deleted file mode 100644 index 33e1458..0000000 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/QRCodeCommand.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright © 2024 RTAkland - * Author: RTAkland - * Date: 2024/8/30 - */ - - -package cn.rtast.fancybot.commands.lookup - -import cn.rtast.fancybot.annotations.CommandDescription -import cn.rtast.rob.entity.GroupMessage -import cn.rtast.rob.util.BaseCommand -import cn.rtast.rob.util.ob.MessageChain -import cn.rtast.rob.util.ob.OneBotListener - -@CommandDescription("生成二维码") -class QRCodeCommand : BaseCommand() { - override val commandNames = listOf("/qr") - - override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { - val content = args.joinToString(" ") - val msg = MessageChain.Builder() - .addImage("https://api.rtast.cn/api/generate_qr?data=$content") - .build() - message.reply(msg) - } -} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WikipediaCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WikipediaCommand.kt index ea7543f..d5f52e3 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WikipediaCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WikipediaCommand.kt @@ -10,7 +10,9 @@ package cn.rtast.fancybot.commands.lookup import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.entity.wiki.PageInfoResponse import cn.rtast.fancybot.entity.wiki.WikipediaResponse +import cn.rtast.fancybot.enums.CommandAction import cn.rtast.fancybot.util.Http +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain @@ -69,6 +71,8 @@ class WikipediaCommand : BaseCommand() { .addText("没有查询到指定的wiki页面呢 >>> $title") .build() message.reply(msg) + } finally { + insertActionRecord(CommandAction.Wiki, message.sender.userId, title) } } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/AntiRevokeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/AntiRevokeCommand.kt index dc48cfb..52efdbb 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/AntiRevokeCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/AntiRevokeCommand.kt @@ -9,6 +9,8 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.configManager +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.rob.entity.ArrayMessage import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType @@ -28,5 +30,7 @@ class AntiRevokeCommand : BaseCommand() { msgList.add(ArrayMessage(ArrayMessageType.text, ArrayMessage.Data(text = "\n被撤回的消息如下: \n"))) msgList.addAll(getMsg.message) listener.sendGroupMessage(message.groupId, msgList) + insertActionRecord(CommandAction.AntiRevoke, message.sender.userId, getMsg.messageId.toString()) + } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt index 5050eb6..1995d1e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/CompilerCommand.kt @@ -12,7 +12,9 @@ import cn.rtast.fancybot.entity.compiler.GLOTPayload import cn.rtast.fancybot.entity.compiler.GLOTResponse import cn.rtast.fancybot.entity.compiler.KCSPayload import cn.rtast.fancybot.entity.compiler.KCSResponse +import cn.rtast.fancybot.enums.CommandAction import cn.rtast.fancybot.util.Http +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.fancybot.util.str.toJson import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand @@ -64,6 +66,8 @@ class CompilerCommand : BaseCommand() { listener.sendGroupMessage(message.groupId, msg) } catch (e: Exception) { message.reply("执行错误: ${e.message}") + } finally { + insertActionRecord(CommandAction.Compiler, message.sender.userId) } } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt new file mode 100644 index 0000000..9d12487 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt @@ -0,0 +1,44 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/8/30 + */ + + +package cn.rtast.fancybot.commands.misc + +import cn.rtast.fancybot.annotations.CommandDescription +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.file.insertActionRecord +import cn.rtast.fancybot.util.str.encodeToBase64 +import cn.rtast.fancybot.util.toByteArray +import cn.rtast.rob.entity.GroupMessage +import cn.rtast.rob.util.BaseCommand +import cn.rtast.rob.util.ob.MessageChain +import cn.rtast.rob.util.ob.OneBotListener +import com.google.zxing.BarcodeFormat +import com.google.zxing.EncodeHintType +import com.google.zxing.client.j2se.MatrixToImageWriter +import com.google.zxing.qrcode.QRCodeWriter + +@CommandDescription("生成二维码") +class QRCodeCommand : BaseCommand() { + override val commandNames = listOf("/qr") + + private fun generateQRCode(content: String): String { + val qrCodeWriter = QRCodeWriter() + val hints = mapOf(EncodeHintType.CHARACTER_SET to "UTF-8") + val bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, 300, 300 , hints) + return MatrixToImageWriter.toBufferedImage(bitMatrix).toByteArray().encodeToBase64() + } + + override suspend fun executeGroup(listener: OneBotListener, message: GroupMessage, args: List) { + val content = args.joinToString(" ") + val image = this.generateQRCode(content) + val msg = MessageChain.Builder() + .addImage(image, true) + .build() + message.reply(msg) + insertActionRecord(CommandAction.GenQRCode, message.sender.userId) + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt index 142f30d..92b6687 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt @@ -8,7 +8,7 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription -import cn.rtast.fancybot.entity.enums.CountryList +import cn.rtast.fancybot.enums.CountryList import cn.rtast.fancybot.util.randomBooleanWithProbability import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/SendMailCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/SendMailCommand.kt index 1fc377a..e5d8ed8 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/SendMailCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/SendMailCommand.kt @@ -9,6 +9,8 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.configManager +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.file.insertActionRecord import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain @@ -58,5 +60,6 @@ class SendMailCommand : BaseCommand() { val target = args.first() this.sendMail(target) message.reply("正在发送邮件, 请查收~(可能会出现在垃圾桶中~)") + insertActionRecord(CommandAction.SendMail, message.sender.userId, target) } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/db/ActionTable.kt b/src/main/kotlin/cn/rtast/fancybot/db/ActionTable.kt new file mode 100644 index 0000000..8c253f1 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/db/ActionTable.kt @@ -0,0 +1,19 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/2 + */ + + +package cn.rtast.fancybot.db + +import org.jetbrains.exposed.sql.Table + +object ActionTable: Table("action") { + val id = integer("id").autoIncrement().nullable() + val action = varchar("action", 255).nullable() + val timestamp = long("timestamp").nullable() + val triggerId = long("trigger_id").nullable() + val result = varchar("result", 255) + override val primaryKey = PrimaryKey(id) +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/db/JrrpTable.kt b/src/main/kotlin/cn/rtast/fancybot/db/JrrpTable.kt similarity index 92% rename from src/main/kotlin/cn/rtast/fancybot/entity/db/JrrpTable.kt rename to src/main/kotlin/cn/rtast/fancybot/db/JrrpTable.kt index 973ff87..962adc8 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/db/JrrpTable.kt +++ b/src/main/kotlin/cn/rtast/fancybot/db/JrrpTable.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.db +package cn.rtast.fancybot.db import org.jetbrains.exposed.sql.Table diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziBankTable.kt b/src/main/kotlin/cn/rtast/fancybot/db/NiuziBankTable.kt similarity index 94% rename from src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziBankTable.kt rename to src/main/kotlin/cn/rtast/fancybot/db/NiuziBankTable.kt index 8cc1d88..51de62b 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziBankTable.kt +++ b/src/main/kotlin/cn/rtast/fancybot/db/NiuziBankTable.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.db +package cn.rtast.fancybot.db import org.jetbrains.exposed.sql.Table diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziTable.kt b/src/main/kotlin/cn/rtast/fancybot/db/NiuziTable.kt similarity index 93% rename from src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziTable.kt rename to src/main/kotlin/cn/rtast/fancybot/db/NiuziTable.kt index fb8cf71..cfcc72c 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/db/NiuziTable.kt +++ b/src/main/kotlin/cn/rtast/fancybot/db/NiuziTable.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.db +package cn.rtast.fancybot.db import org.jetbrains.exposed.sql.Table diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt b/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt index 00d39c0..b8d4ebd 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt +++ b/src/main/kotlin/cn/rtast/fancybot/entity/Config.kt @@ -7,8 +7,8 @@ package cn.rtast.fancybot.entity -import cn.rtast.fancybot.entity.enums.ImageType -import cn.rtast.fancybot.entity.enums.WSType +import cn.rtast.fancybot.enums.ImageType +import cn.rtast.fancybot.enums.WSType data class Config( val ncmAPI: String, diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsPayload.kt b/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsPayload.kt index 12e0e5a..4f0190d 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsPayload.kt +++ b/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsPayload.kt @@ -7,7 +7,7 @@ package cn.rtast.fancybot.entity.gpt -import cn.rtast.fancybot.entity.enums.GPTUserRole +import cn.rtast.fancybot.enums.GPTUserRole data class ChatCompletionsPayload( val model: String, diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsResponse.kt b/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsResponse.kt index 6d55af2..978d512 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsResponse.kt +++ b/src/main/kotlin/cn/rtast/fancybot/entity/gpt/ChatCompletionsResponse.kt @@ -7,7 +7,7 @@ package cn.rtast.fancybot.entity.gpt -import cn.rtast.fancybot.entity.enums.GPTUserRole +import cn.rtast.fancybot.enums.GPTUserRole data class ChatCompletionsResponse( val choices: List diff --git a/src/main/kotlin/cn/rtast/fancybot/enums/CommandAction.kt b/src/main/kotlin/cn/rtast/fancybot/enums/CommandAction.kt new file mode 100644 index 0000000..2105f40 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/enums/CommandAction.kt @@ -0,0 +1,14 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/2 + */ + + +package cn.rtast.fancybot.enums + +enum class CommandAction(val action: String) { + SendMail("发送邮件"), Echo("使用Echo"), GenQRCode("生成二维码"), + Status("获取状态"), Compiler("执行语言代码"), AntiRevoke("防撤回"), + Wiki("查询Wiki"), AI("问AI") +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt b/src/main/kotlin/cn/rtast/fancybot/enums/CountryList.kt similarity index 94% rename from src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt rename to src/main/kotlin/cn/rtast/fancybot/enums/CountryList.kt index 5d191dd..b81971a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/enums/CountryList.kt +++ b/src/main/kotlin/cn/rtast/fancybot/enums/CountryList.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.enums +package cn.rtast.fancybot.enums enum class CountryList(val chineseName: String) { China("中国"), UnitedStates("美国"), Russia("俄罗斯"), diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/enums/GPTUserRole.kt b/src/main/kotlin/cn/rtast/fancybot/enums/GPTUserRole.kt similarity index 77% rename from src/main/kotlin/cn/rtast/fancybot/entity/enums/GPTUserRole.kt rename to src/main/kotlin/cn/rtast/fancybot/enums/GPTUserRole.kt index d691be2..8f699de 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/enums/GPTUserRole.kt +++ b/src/main/kotlin/cn/rtast/fancybot/enums/GPTUserRole.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.enums +package cn.rtast.fancybot.enums enum class GPTUserRole { user, system, assistant diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/enums/ImageType.kt b/src/main/kotlin/cn/rtast/fancybot/enums/ImageType.kt similarity index 79% rename from src/main/kotlin/cn/rtast/fancybot/entity/enums/ImageType.kt rename to src/main/kotlin/cn/rtast/fancybot/enums/ImageType.kt index 8609f5d..45b8d67 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/enums/ImageType.kt +++ b/src/main/kotlin/cn/rtast/fancybot/enums/ImageType.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.enums +package cn.rtast.fancybot.enums enum class ImageType(val typeName: String) { PNG("png"), JPG("jpg") diff --git a/src/main/kotlin/cn/rtast/fancybot/entity/enums/WSType.kt b/src/main/kotlin/cn/rtast/fancybot/enums/WSType.kt similarity index 75% rename from src/main/kotlin/cn/rtast/fancybot/entity/enums/WSType.kt rename to src/main/kotlin/cn/rtast/fancybot/enums/WSType.kt index 7be84d8..1787953 100644 --- a/src/main/kotlin/cn/rtast/fancybot/entity/enums/WSType.kt +++ b/src/main/kotlin/cn/rtast/fancybot/enums/WSType.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.entity.enums +package cn.rtast.fancybot.enums enum class WSType { Client, Server diff --git a/src/main/kotlin/cn/rtast/fancybot/util/Database.kt b/src/main/kotlin/cn/rtast/fancybot/util/Database.kt index 4365afd..111ec50 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/Database.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/Database.kt @@ -8,9 +8,10 @@ package cn.rtast.fancybot.util import cn.rtast.fancybot.ROOT_PATH -import cn.rtast.fancybot.entity.db.JrrpTable -import cn.rtast.fancybot.entity.db.NiuziBankTable -import cn.rtast.fancybot.entity.db.NiuziTable +import cn.rtast.fancybot.db.ActionTable +import cn.rtast.fancybot.db.JrrpTable +import cn.rtast.fancybot.db.NiuziBankTable +import cn.rtast.fancybot.db.NiuziTable import kotlinx.coroutines.Dispatchers import org.jetbrains.exposed.sql.Database import org.jetbrains.exposed.sql.SchemaUtils @@ -22,6 +23,7 @@ suspend fun initDatabase() { SchemaUtils.createMissingTablesAndColumns(JrrpTable) SchemaUtils.createMissingTablesAndColumns(NiuziBankTable) SchemaUtils.createMissingTablesAndColumns(NiuziTable) + SchemaUtils.createMissingTablesAndColumns(ActionTable) } } diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/ActionManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/ActionManager.kt new file mode 100644 index 0000000..fea3026 --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/ActionManager.kt @@ -0,0 +1,26 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/2 + */ + + +package cn.rtast.fancybot.util.file + +import cn.rtast.fancybot.db.ActionTable +import cn.rtast.fancybot.enums.CommandAction +import cn.rtast.fancybot.util.suspendedTransaction +import org.jetbrains.exposed.sql.insert +import java.time.Instant + + +suspend fun insertActionRecord(triggerAction: CommandAction, userId: Long, triggerResult: String = "Nothing") { + suspendedTransaction { + ActionTable.insert { + it[action] = triggerAction.action + it[timestamp] = Instant.now().epochSecond + it[triggerId] = userId + it[result] = triggerResult + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt index 68060cc..207441b 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt @@ -7,8 +7,8 @@ package cn.rtast.fancybot.util.file -import cn.rtast.fancybot.entity.db.JrrpRecord -import cn.rtast.fancybot.entity.db.JrrpTable +import cn.rtast.fancybot.db.JrrpRecord +import cn.rtast.fancybot.db.JrrpTable import cn.rtast.fancybot.util.isSameDay import cn.rtast.fancybot.util.suspendedTransaction import org.jetbrains.exposed.sql.insert diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziBankManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziBankManager.kt index 1c13710..db1a7a4 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziBankManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziBankManager.kt @@ -7,14 +7,14 @@ package cn.rtast.fancybot.util.file -import cn.rtast.fancybot.entity.db.NiuziBankAccount -import cn.rtast.fancybot.entity.db.NiuziBankTable -import cn.rtast.fancybot.entity.db.NiuziBankTable.balance -import cn.rtast.fancybot.entity.db.NiuziBankTable.interestRate -import cn.rtast.fancybot.entity.db.NiuziBankTable.nickname -import cn.rtast.fancybot.entity.db.NiuziBankTable.timestamp -import cn.rtast.fancybot.entity.db.NiuziBankTable.userId -import cn.rtast.fancybot.entity.db.NiuziTable +import cn.rtast.fancybot.db.NiuziBankAccount +import cn.rtast.fancybot.db.NiuziBankTable +import cn.rtast.fancybot.db.NiuziBankTable.balance +import cn.rtast.fancybot.db.NiuziBankTable.interestRate +import cn.rtast.fancybot.db.NiuziBankTable.nickname +import cn.rtast.fancybot.db.NiuziBankTable.timestamp +import cn.rtast.fancybot.db.NiuziBankTable.userId +import cn.rtast.fancybot.db.NiuziTable import cn.rtast.fancybot.util.suspendedTransaction import org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.selectAll diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt index 3f620c8..605d077 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt @@ -7,12 +7,12 @@ package cn.rtast.fancybot.util.file -import cn.rtast.fancybot.entity.db.Niuzi -import cn.rtast.fancybot.entity.db.NiuziTable -import cn.rtast.fancybot.entity.db.NiuziTable.length -import cn.rtast.fancybot.entity.db.NiuziTable.nickname -import cn.rtast.fancybot.entity.db.NiuziTable.timestamp -import cn.rtast.fancybot.entity.db.NiuziTable.userId +import cn.rtast.fancybot.db.Niuzi +import cn.rtast.fancybot.db.NiuziTable +import cn.rtast.fancybot.db.NiuziTable.length +import cn.rtast.fancybot.db.NiuziTable.nickname +import cn.rtast.fancybot.db.NiuziTable.timestamp +import cn.rtast.fancybot.db.NiuziTable.userId import cn.rtast.fancybot.util.isSameDay import cn.rtast.fancybot.util.suspendedTransaction import org.jetbrains.exposed.sql.insert