feat: add image bed command
This commit is contained in:
31 files changed
+113
-63
No files matched your search
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -27,7 +27,7 @@ class ShortLinkCommand : BaseCommand() {
|
||||
fun String.makeShortLink(): String {
|
||||
val shortLink = Http.post<ShortLinkResponse>(
|
||||
"$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 <url>`来生成短链接`不要放入一些奇怪的链接哦~")
|
||||
return
|
||||
}
|
||||
val target = args.first().encodeToBase64()
|
||||
val target = args.first()
|
||||
val shortLink = target.makeShortLink()
|
||||
message.reply(shortLink)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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>("config.json") {
|
||||
private val config = this.read<Config>()
|
||||
|
||||
@@ -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 -> ""
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.util
|
||||
package cn.rtast.fancybot.util.misc
|
||||
|
||||
import java.time.Instant
|
||||
import java.time.ZoneId
|
||||
+1
-1
@@ -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
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.util
|
||||
package cn.rtast.fancybot.util.misc
|
||||
|
||||
import cn.rtast.fancybot.configManager
|
||||
import java.awt.Graphics2D
|
||||
+2
-1
@@ -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
|
||||
+2
-1
@@ -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
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.util
|
||||
package cn.rtast.fancybot.util.misc
|
||||
|
||||
import java.io.InputStream
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.util
|
||||
package cn.rtast.fancybot.util.misc
|
||||
|
||||
import java.net.URI
|
||||
import java.net.URL
|
||||
+1
-3
@@ -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<T> {
|
||||
Reference in New Issue
Block a user