chore: use local json file instead of api
This commit is contained in:
5 files changed
+25
-15
No files matched your search
@@ -39,6 +39,7 @@ val gson: Gson = GsonBuilder()
|
||||
.create()
|
||||
|
||||
const val ROOT_PATH = "./data"
|
||||
const val ASSETS_BASE_URL = "https://static.rtast.cn"
|
||||
|
||||
val DEFAULT_CONFIG = Config(
|
||||
ncmAPI = "https://ncm.rtast.cn",
|
||||
|
||||
@@ -12,6 +12,7 @@ import cn.rtast.fancybot.enums.WSType
|
||||
import cn.rtast.fancybot.util.initCommandAndItem
|
||||
import cn.rtast.fancybot.util.initDatabase
|
||||
import cn.rtast.fancybot.util.initFilesDir
|
||||
import cn.rtast.fancybot.util.initSetuIndex
|
||||
import cn.rtast.rob.ROneBotFactory
|
||||
import cn.rtast.rob.entity.*
|
||||
import cn.rtast.rob.entity.lagrange.FileEvent
|
||||
@@ -159,4 +160,5 @@ suspend fun main() {
|
||||
initDatabase()
|
||||
initFilesDir()
|
||||
initCommandAndItem(rob)
|
||||
initSetuIndex()
|
||||
}
|
||||
+4
-9
@@ -1,22 +1,17 @@
|
||||
/*
|
||||
* Copyright © 2024 RTAkland
|
||||
* Author: RTAkland
|
||||
* Date: 2024/9/29
|
||||
* Date: 2024/10/6
|
||||
*/
|
||||
|
||||
|
||||
package cn.rtast.fancybot.entity.setu
|
||||
|
||||
data class SetuV2(
|
||||
data class SetuV3(
|
||||
val pid: Long,
|
||||
val uid: Long,
|
||||
val title: String,
|
||||
val author: String,
|
||||
val urls: URLS,
|
||||
val url: String,
|
||||
val r18: Boolean,
|
||||
val tags: List<String>
|
||||
) {
|
||||
data class URLS(
|
||||
val regular: String,
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -7,9 +7,10 @@
|
||||
|
||||
package cn.rtast.fancybot.items
|
||||
|
||||
import cn.rtast.fancybot.ROOT_PATH
|
||||
import cn.rtast.fancybot.configManager
|
||||
import cn.rtast.fancybot.entity.setu.Setu
|
||||
import cn.rtast.fancybot.entity.setu.SetuV2
|
||||
import cn.rtast.fancybot.entity.setu.SetuV3
|
||||
import cn.rtast.fancybot.util.Http
|
||||
import cn.rtast.fancybot.util.item.Item
|
||||
import cn.rtast.fancybot.util.str.encodeToBase64
|
||||
@@ -19,27 +20,28 @@ import cn.rtast.rob.util.ob.MessageChain
|
||||
import cn.rtast.rob.util.ob.NodeMessageChain
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
import cn.rtast.rob.util.ob.asNode
|
||||
import java.io.File
|
||||
import java.net.URI
|
||||
|
||||
private val setuV3Index = File("$ROOT_PATH/caches/pixiv_index_v3.json")
|
||||
.readText(Charsets.UTF_8)
|
||||
.fromArrayJson<List<SetuV3>>()
|
||||
|
||||
private fun getImages(r18: Boolean): NodeMessageChain {
|
||||
val msg = mutableListOf<MessageChain>()
|
||||
if (r18) {
|
||||
val response = Http.get("https://api.rtast.cn/api/setu/v2?size=10")
|
||||
.fromArrayJson<List<SetuV2>>()
|
||||
val response = setuV3Index.shuffled().take(10)
|
||||
msg.add(MessageChain.Builder().addText("因为是R18所以你需要自行访问链接来查看图片~").build())
|
||||
response.forEach {
|
||||
try {
|
||||
val tempMsg = MessageChain.Builder()
|
||||
.addText(it.urls.regular)
|
||||
.addText(it.url)
|
||||
.addNewLine()
|
||||
.addText("标题: ${it.title}")
|
||||
.addNewLine()
|
||||
.addText("作品ID: ${it.pid}")
|
||||
.addNewLine()
|
||||
.addText("作者: ${it.author}(${it.uid})")
|
||||
.addNewLine()
|
||||
.addText("标签: ${it.tags.joinToString(" | ")}")
|
||||
.build()
|
||||
msg.add(tempMsg)
|
||||
} catch (_: Exception) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import cn.rtast.fancybot.*
|
||||
import cn.rtast.rob.ROneBotFactory
|
||||
import cn.rtast.rob.util.ob.OneBotListener
|
||||
import java.io.File
|
||||
import java.net.URI
|
||||
import kotlin.random.Random
|
||||
|
||||
fun randomBooleanWithProbability(probability: Double): Boolean {
|
||||
@@ -33,3 +34,12 @@ fun initCommandAndItem(rob: ROneBotFactory) {
|
||||
fun initFilesDir() {
|
||||
File("./$ROOT_PATH/caches/images").also { it.mkdirs() }
|
||||
}
|
||||
|
||||
fun initSetuIndex() {
|
||||
val file = File("$ROOT_PATH/caches/pixiv_index_v3.json")
|
||||
if (!file.exists()) {
|
||||
file.createNewFile()
|
||||
val fileContent = Http.get("$ASSETS_BASE_URL/files/pixiv_index_v3.json")
|
||||
file.writeText(fileContent)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user