feat: add image bed api

This commit is contained in:
2024-10-08 20:48:02 +08:00
parent 92bf62347c
commit 8504533659
5 files changed
+84

No files matched your search

@@ -0,0 +1,13 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/10/8
*/
package cn.rtast.fancybot.entity.github
data class UploadContentPayload(
val message: String,
val content: String,
)
@@ -0,0 +1,16 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/10/8
*/
package cn.rtast.fancybot.entity.github
data class UploadContentResponse(
val content: Content
) {
data class Content(
val name: String,
)
}
@@ -0,0 +1,12 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/10/8
*/
package cn.rtast.fancybot.entity.shortlink
data class ShortLinkPayload(
val target: String
)
@@ -0,0 +1,12 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/10/8
*/
package cn.rtast.fancybot.entity.shortlink
data class ShortLinkResponse(
val id: String
)
@@ -0,0 +1,31 @@
/*
* Copyright © 2024 RTAkland
* Author: RTAkland
* Date: 2024/10/8
*/
package cn.rtast.fancybot.util
import cn.rtast.fancybot.configManager
import cn.rtast.fancybot.entity.github.UploadContentPayload
import cn.rtast.fancybot.entity.github.UploadContentResponse
import cn.rtast.fancybot.util.str.encodeToBase64
import cn.rtast.fancybot.util.str.proxy
import cn.rtast.fancybot.util.str.toJson
import java.util.UUID
object ImageBed {
private val imageBedUrl =
"https://api.github.com/repos/${configManager.githubUser}/${configManager.githubImageRepo}/contents".proxy
fun upload(file: ByteArray, fileType: String = ""): String {
val body = UploadContentPayload("uploadImage", file.encodeToBase64()).toJson()
val response = Http.put<UploadContentResponse>(
"$imageBedUrl/${UUID.randomUUID()}${if (fileType.isNotBlank()) ".$fileType" else ""}", body,
mapOf("Authorization" to "Bearer ${configManager.githubKey}")
).content.name
return "https://raw.githubusercontent.com/${configManager.githubUser}/${configManager.githubImageRepo}/refs/heads/main/$response".proxy
}
}