From 06a385db1a73e98ec558c386ca3bb41076c58641 Mon Sep 17 00:00:00 2001 From: RTAkland Date: Wed, 9 Oct 2024 13:06:43 +0800 Subject: [PATCH] feat: add image bed command --- src/main/kotlin/cn/rtast/fancybot/FancyBot.kt | 19 ++++++++++ .../commands/lookup/DomainPriceCommand.kt | 2 +- .../commands/lookup/GithubUserCommand.kt | 8 ++--- .../fancybot/commands/lookup/MCSkinCommand.kt | 6 ++-- .../fancybot/commands/lookup/TheCatCommand.kt | 2 +- .../commands/lookup/WeatherCommand.kt | 10 +++--- .../commands/misc/BullShitGenerateCommand.kt | 2 +- .../fancybot/commands/misc/JueCommand.kt | 8 ++--- .../fancybot/commands/misc/QRCodeCommand.kt | 4 +-- .../fancybot/commands/misc/RemakeCommand.kt | 2 +- .../commands/misc/ShortLinkCommand.kt | 4 +-- .../commands/misc/SlimeChunkHelperCommand.kt | 2 +- .../commands/niuzi/NiuziBankCommand.kt | 2 +- .../commands/niuzi/NiuziSignCommand.kt | 2 +- .../commands/parse/AsciiArtCommand.kt | 4 +-- .../fancybot/commands/parse/BVParseCommand.kt | 6 ++-- .../commands/parse/GitHubParseCommand.kt | 8 ++--- .../commands/parse/ImageURLCommand.kt | 35 ++++++++++++------- .../commands/parse/ReverseGIFCommand.kt | 2 +- .../rtast/fancybot/util/file/ConfigManager.kt | 2 +- .../cn/rtast/fancybot/util/file/File.kt | 22 ++++++++++++ .../rtast/fancybot/util/file/JrrpManager.kt | 2 +- .../rtast/fancybot/util/file/NiuziManager.kt | 2 +- .../fancybot/util/{ => misc}/DateUtil.kt | 2 +- .../cn/rtast/fancybot/util/{ => misc}/GIF.kt | 2 +- .../rtast/fancybot/util/{ => misc}/Image.kt | 2 +- .../fancybot/util/{ => misc}/ImageBed.kt | 3 +- .../cn/rtast/fancybot/util/{ => misc}/Misc.kt | 3 +- .../fancybot/util/{ => misc}/Resources.kt | 2 +- .../cn/rtast/fancybot/util/{ => misc}/URI.kt | 2 +- .../util/{ => str}/JsonFileHandler.kt | 4 +-- 31 files changed, 113 insertions(+), 63 deletions(-) create mode 100644 src/main/kotlin/cn/rtast/fancybot/util/file/File.kt rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/DateUtil.kt (91%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/GIF.kt (95%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/Image.kt (99%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/ImageBed.kt (94%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/Misc.kt (94%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/Resources.kt (92%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => misc}/URI.kt (86%) rename src/main/kotlin/cn/rtast/fancybot/util/{ => str}/JsonFileHandler.kt (91%) diff --git a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt index 32d6388..8c8c0f9 100644 --- a/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt +++ b/src/main/kotlin/cn/rtast/fancybot/FancyBot.kt @@ -11,6 +11,12 @@ import cn.rtast.fancybot.commands.misc.ScanQRCodeCommand import cn.rtast.fancybot.commands.parse.* import cn.rtast.fancybot.enums.WSType import cn.rtast.fancybot.util.* +import cn.rtast.fancybot.util.file.getFileType +import cn.rtast.fancybot.util.misc.ImageBed +import cn.rtast.fancybot.util.misc.initCommandAndItem +import cn.rtast.fancybot.util.misc.initFilesDir +import cn.rtast.fancybot.util.misc.initSetuIndex +import cn.rtast.fancybot.util.misc.toURL import cn.rtast.rob.ROneBotFactory import cn.rtast.rob.entity.* import cn.rtast.rob.entity.lagrange.FileEvent @@ -72,6 +78,19 @@ class FancyBot : OneBotListener { val getMsg = this.getMessage(replyId.toString().toLong()) ImageURLCommand.callback(message, getMsg) } + + if (command.contains("图床")) { + val getMsg = this.getMessage(replyId.toString().toLong()) + val imageUrl = ImageURLCommand.getImageUrl(getMsg) + if (imageUrl == null) { + message.reply("这个消息里没有图片呢!") + } else { + val imageByteArray = imageUrl.toURL().readBytes() + val imageFileType = imageByteArray.getFileType() + val imageBedUrl = ImageBed.upload(imageByteArray, imageFileType) + message.reply(imageBedUrl) + } + } } val matchedResult = githubRegex.find(message.rawMessage) diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/DomainPriceCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/DomainPriceCommand.kt index 0a4c831..125f752 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/DomainPriceCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/DomainPriceCommand.kt @@ -13,7 +13,7 @@ import cn.rtast.fancybot.entity.domain.PriceResponse import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.toJson -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/GithubUserCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/GithubUserCommand.kt index a42280b..41b7974 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/GithubUserCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/GithubUserCommand.kt @@ -11,11 +11,11 @@ import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.github.UserInfo import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.drawCustomImage -import cn.rtast.fancybot.util.drawString +import cn.rtast.fancybot.util.misc.drawCustomImage +import cn.rtast.fancybot.util.misc.drawString import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.toBufferedImage -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toBufferedImage +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MCSkinCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MCSkinCommand.kt index 5c3e258..642e09e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MCSkinCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/MCSkinCommand.kt @@ -14,12 +14,12 @@ import cn.rtast.fancybot.entity.mc.DecodedSkin import cn.rtast.fancybot.entity.mc.Skin import cn.rtast.fancybot.entity.mc.Username import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.isFullyTransparent -import cn.rtast.fancybot.util.scaleImage +import cn.rtast.fancybot.util.misc.isFullyTransparent +import cn.rtast.fancybot.util.misc.scaleImage import cn.rtast.fancybot.util.str.decodeToString import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.fromJson -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheCatCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheCatCommand.kt index b490b03..a2d783c 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheCatCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/TheCatCommand.kt @@ -12,7 +12,7 @@ import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.fromArrayJson import cn.rtast.fancybot.util.str.proxy -import cn.rtast.fancybot.util.toURL +import cn.rtast.fancybot.util.misc.toURL import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WeatherCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WeatherCommand.kt index d6cb608..fdfcf27 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WeatherCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/lookup/WeatherCommand.kt @@ -12,12 +12,12 @@ import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.weather.Geo import cn.rtast.fancybot.entity.weather.Weather import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.Resources -import cn.rtast.fancybot.util.drawCenteredText -import cn.rtast.fancybot.util.drawCustomImage +import cn.rtast.fancybot.util.misc.Resources +import cn.rtast.fancybot.util.misc.drawCenteredText +import cn.rtast.fancybot.util.misc.drawCustomImage import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.toBufferedImage -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toBufferedImage +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt index 06c5fb2..ff73bea 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/BullShitGenerateCommand.kt @@ -10,7 +10,7 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.bullshit.BullShit -import cn.rtast.fancybot.util.Resources +import cn.rtast.fancybot.util.misc.Resources import cn.rtast.fancybot.util.str.fromJson import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/JueCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/JueCommand.kt index b14ed8c..1753162 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/JueCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/JueCommand.kt @@ -8,11 +8,11 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription -import cn.rtast.fancybot.util.Resources -import cn.rtast.fancybot.util.drawCircularImage -import cn.rtast.fancybot.util.makeGif +import cn.rtast.fancybot.util.misc.Resources +import cn.rtast.fancybot.util.misc.drawCircularImage +import cn.rtast.fancybot.util.misc.makeGif import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.toBufferedImage +import cn.rtast.fancybot.util.misc.toBufferedImage import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.util.BaseCommand diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt index 1b8879d..38bc21a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/QRCodeCommand.kt @@ -11,8 +11,8 @@ 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.toBufferedImage -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toBufferedImage +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.util.BaseCommand 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 92b6687..b9d688a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/RemakeCommand.kt @@ -9,7 +9,7 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.enums.CountryList -import cn.rtast.fancybot.util.randomBooleanWithProbability +import cn.rtast.fancybot.util.misc.randomBooleanWithProbability import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/ShortLinkCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/ShortLinkCommand.kt index 27b53f8..1db0f58 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/ShortLinkCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/ShortLinkCommand.kt @@ -27,7 +27,7 @@ class ShortLinkCommand : BaseCommand() { fun String.makeShortLink(): String { val shortLink = Http.post( "$API_RTAST_URL/short_link", - ShortLinkPayload(this).toJson() + ShortLinkPayload(this.encodeToBase64()).toJson() ) return "$API_RTAST_URL/s?rnd_id=${shortLink.id}" } @@ -38,7 +38,7 @@ class ShortLinkCommand : BaseCommand() { message.reply("发送`/s `来生成短链接`不要放入一些奇怪的链接哦~") return } - val target = args.first().encodeToBase64() + val target = args.first() val shortLink = target.makeShortLink() message.reply(shortLink) } diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/misc/SlimeChunkHelperCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/misc/SlimeChunkHelperCommand.kt index 3c3df80..13d500a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/misc/SlimeChunkHelperCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/misc/SlimeChunkHelperCommand.kt @@ -9,7 +9,7 @@ package cn.rtast.fancybot.commands.misc import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziBankCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziBankCommand.kt index b49ae12..b41fee7 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziBankCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziBankCommand.kt @@ -11,7 +11,7 @@ import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.commands import cn.rtast.fancybot.niuziBankManager import cn.rtast.fancybot.niuziManager -import cn.rtast.fancybot.util.getUserName +import cn.rtast.fancybot.util.misc.getUserName import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.util.BaseCommand diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziSignCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziSignCommand.kt index d2c3f1b..38a17cd 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziSignCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/niuzi/NiuziSignCommand.kt @@ -9,7 +9,7 @@ package cn.rtast.fancybot.commands.niuzi import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.niuziManager -import cn.rtast.fancybot.util.getUserName +import cn.rtast.fancybot.util.misc.getUserName import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.BaseCommand import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/AsciiArtCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/AsciiArtCommand.kt index ca2b237..2ab767f 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/AsciiArtCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/AsciiArtCommand.kt @@ -9,9 +9,9 @@ package cn.rtast.fancybot.commands.parse import cn.rtast.fancybot.annotations.CommandDescription import cn.rtast.fancybot.util.Logger -import cn.rtast.fancybot.util.makeGif +import cn.rtast.fancybot.util.misc.makeGif import cn.rtast.fancybot.util.str.encodeToBase64 -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.util.BaseCommand diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/BVParseCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/BVParseCommand.kt index 10f6fe1..751a891 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/BVParseCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/BVParseCommand.kt @@ -9,13 +9,13 @@ package cn.rtast.fancybot.commands.parse import cn.rtast.fancybot.entity.bili.* import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.Resources -import cn.rtast.fancybot.util.drawCustomImage +import cn.rtast.fancybot.util.misc.Resources +import cn.rtast.fancybot.util.misc.drawCustomImage import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.formatNumber import cn.rtast.fancybot.util.str.fromJson import cn.rtast.fancybot.util.str.setTruncate -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType import cn.rtast.rob.util.ob.MessageChain diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/GitHubParseCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/GitHubParseCommand.kt index dd5a650..8bbf436 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/GitHubParseCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/GitHubParseCommand.kt @@ -10,13 +10,13 @@ package cn.rtast.fancybot.commands.parse import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.github.RepoInfo import cn.rtast.fancybot.util.Http -import cn.rtast.fancybot.util.Resources -import cn.rtast.fancybot.util.drawCustomImage -import cn.rtast.fancybot.util.drawString +import cn.rtast.fancybot.util.misc.Resources +import cn.rtast.fancybot.util.misc.drawCustomImage +import cn.rtast.fancybot.util.misc.drawString import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.formatNumberEnglish import cn.rtast.fancybot.util.str.setTruncate -import cn.rtast.fancybot.util.toByteArray +import cn.rtast.fancybot.util.misc.toByteArray import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.util.ob.MessageChain import java.awt.Color diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/ImageURLCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/ImageURLCommand.kt index 8cc69c6..99ce348 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/ImageURLCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/ImageURLCommand.kt @@ -10,21 +10,30 @@ package cn.rtast.fancybot.commands.parse import cn.rtast.rob.entity.GetMessage import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType -import cn.rtast.rob.util.ob.MessageChain object ImageURLCommand { - suspend fun callback(groupMessage: GroupMessage, message: GetMessage.Data) { - val msg = MessageChain.Builder() - .addReply(message.messageId) - .addText("哈哈哈哈图片来咯~") - .addNewLine() - val image = message.message.find { it.type == ArrayMessageType.image } - if (image == null) { - val gif = message.message.find { it.type == ArrayMessageType.mface }!! - msg.addText(gif.data.url!!) - } else { - msg.addText(image.data.file!!) + + fun getImageUrl(message: GetMessage.Data): String? { + try { + val image = message.message.find { it.type == ArrayMessageType.image } + val url = if (image == null) { + val gif = message.message.find { it.type == ArrayMessageType.mface }!! + gif.data.url!! + } else { + image.data.file!! + } + return url + } catch (_: NullPointerException) { + return null + } + } + + suspend fun callback(groupMessage: GroupMessage, message: GetMessage.Data) { + val url = getImageUrl(message) + if (url == null) { + groupMessage.reply("这个消息里没有图片呢!") + } else { + groupMessage.reply(url) } - groupMessage.reply(msg.build()) } } \ No newline at end of file diff --git a/src/main/kotlin/cn/rtast/fancybot/commands/parse/ReverseGIFCommand.kt b/src/main/kotlin/cn/rtast/fancybot/commands/parse/ReverseGIFCommand.kt index 5cb9768..fcc24d3 100644 --- a/src/main/kotlin/cn/rtast/fancybot/commands/parse/ReverseGIFCommand.kt +++ b/src/main/kotlin/cn/rtast/fancybot/commands/parse/ReverseGIFCommand.kt @@ -8,7 +8,7 @@ package cn.rtast.fancybot.commands.parse import cn.rtast.fancybot.annotations.CommandDescription -import cn.rtast.fancybot.util.makeGif +import cn.rtast.fancybot.util.misc.makeGif import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.rob.entity.GroupMessage import cn.rtast.rob.enums.ArrayMessageType diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt index fd4b466..d843d51 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/ConfigManager.kt @@ -8,7 +8,7 @@ package cn.rtast.fancybot.util.file import cn.rtast.fancybot.entity.Config -import cn.rtast.fancybot.util.JsonFileHandler +import cn.rtast.fancybot.util.str.JsonFileHandler class ConfigManager : JsonFileHandler("config.json") { private val config = this.read() diff --git a/src/main/kotlin/cn/rtast/fancybot/util/file/File.kt b/src/main/kotlin/cn/rtast/fancybot/util/file/File.kt new file mode 100644 index 0000000..75d700e --- /dev/null +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/File.kt @@ -0,0 +1,22 @@ +/* + * Copyright © 2024 RTAkland + * Author: RTAkland + * Date: 2024/10/9 + */ + + +package cn.rtast.fancybot.util.file + +fun ByteArray.getFileType(): String { + val fileSignature = this.take(4).joinToString("") { "%02X".format(it) } + return when { + fileSignature.startsWith("FFD8FF") -> "jpg" + fileSignature.startsWith("89504E47") -> "png" + fileSignature.startsWith("47494638") -> "gif" + fileSignature.startsWith("25504446") -> "pdf" + fileSignature.startsWith("504B0304") -> "zip" + fileSignature.startsWith("377ABCAF") -> "7z" + fileSignature.startsWith("1F8B") -> "gz" + else -> "" + } +} \ 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 207441b..99e683a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/JrrpManager.kt @@ -9,7 +9,7 @@ package cn.rtast.fancybot.util.file import cn.rtast.fancybot.db.JrrpRecord import cn.rtast.fancybot.db.JrrpTable -import cn.rtast.fancybot.util.isSameDay +import cn.rtast.fancybot.util.misc.isSameDay 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 605d077..40a3b4c 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/file/NiuziManager.kt @@ -13,7 +13,7 @@ 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.misc.isSameDay 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/DateUtil.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/DateUtil.kt similarity index 91% rename from src/main/kotlin/cn/rtast/fancybot/util/DateUtil.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/DateUtil.kt index 6c96dd0..5081192 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/DateUtil.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/DateUtil.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import java.time.Instant import java.time.ZoneId diff --git a/src/main/kotlin/cn/rtast/fancybot/util/GIF.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/GIF.kt similarity index 95% rename from src/main/kotlin/cn/rtast/fancybot/util/GIF.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/GIF.kt index 1ae5fb8..528c6d5 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/GIF.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/GIF.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import com.madgag.gif.fmsware.AnimatedGifEncoder import com.madgag.gif.fmsware.GifDecoder diff --git a/src/main/kotlin/cn/rtast/fancybot/util/Image.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/Image.kt similarity index 99% rename from src/main/kotlin/cn/rtast/fancybot/util/Image.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/Image.kt index d7dacad..7354319 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/Image.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/Image.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import cn.rtast.fancybot.configManager import java.awt.Graphics2D diff --git a/src/main/kotlin/cn/rtast/fancybot/util/ImageBed.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt similarity index 94% rename from src/main/kotlin/cn/rtast/fancybot/util/ImageBed.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt index 49b42de..ed1c26b 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/ImageBed.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/ImageBed.kt @@ -5,11 +5,12 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import cn.rtast.fancybot.configManager import cn.rtast.fancybot.entity.github.UploadContentPayload import cn.rtast.fancybot.entity.github.UploadContentResponse +import cn.rtast.fancybot.util.Http import cn.rtast.fancybot.util.str.encodeToBase64 import cn.rtast.fancybot.util.str.proxy import cn.rtast.fancybot.util.str.toJson diff --git a/src/main/kotlin/cn/rtast/fancybot/util/Misc.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/Misc.kt similarity index 94% rename from src/main/kotlin/cn/rtast/fancybot/util/Misc.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/Misc.kt index f6020ea..5cb238a 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/Misc.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/Misc.kt @@ -5,9 +5,10 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import cn.rtast.fancybot.* +import cn.rtast.fancybot.util.Http import cn.rtast.rob.ROneBotFactory import cn.rtast.rob.util.ob.OneBotListener import java.io.File diff --git a/src/main/kotlin/cn/rtast/fancybot/util/Resources.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/Resources.kt similarity index 92% rename from src/main/kotlin/cn/rtast/fancybot/util/Resources.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/Resources.kt index 23d840b..ee6aa36 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/Resources.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/Resources.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import java.io.InputStream diff --git a/src/main/kotlin/cn/rtast/fancybot/util/URI.kt b/src/main/kotlin/cn/rtast/fancybot/util/misc/URI.kt similarity index 86% rename from src/main/kotlin/cn/rtast/fancybot/util/URI.kt rename to src/main/kotlin/cn/rtast/fancybot/util/misc/URI.kt index 5475559..2a2515e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/URI.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/misc/URI.kt @@ -5,7 +5,7 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.misc import java.net.URI import java.net.URL diff --git a/src/main/kotlin/cn/rtast/fancybot/util/JsonFileHandler.kt b/src/main/kotlin/cn/rtast/fancybot/util/str/JsonFileHandler.kt similarity index 91% rename from src/main/kotlin/cn/rtast/fancybot/util/JsonFileHandler.kt rename to src/main/kotlin/cn/rtast/fancybot/util/str/JsonFileHandler.kt index 941775a..444608e 100644 --- a/src/main/kotlin/cn/rtast/fancybot/util/JsonFileHandler.kt +++ b/src/main/kotlin/cn/rtast/fancybot/util/str/JsonFileHandler.kt @@ -5,12 +5,10 @@ */ -package cn.rtast.fancybot.util +package cn.rtast.fancybot.util.str import cn.rtast.fancybot.ROOT_PATH import cn.rtast.fancybot.gson -import cn.rtast.fancybot.util.str.fromArrayJson -import cn.rtast.fancybot.util.str.fromJson import java.io.File abstract class JsonFileHandler {