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()
|
.create()
|
||||||
|
|
||||||
const val ROOT_PATH = "./data"
|
const val ROOT_PATH = "./data"
|
||||||
|
const val ASSETS_BASE_URL = "https://static.rtast.cn"
|
||||||
|
|
||||||
val DEFAULT_CONFIG = Config(
|
val DEFAULT_CONFIG = Config(
|
||||||
ncmAPI = "https://ncm.rtast.cn",
|
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.initCommandAndItem
|
||||||
import cn.rtast.fancybot.util.initDatabase
|
import cn.rtast.fancybot.util.initDatabase
|
||||||
import cn.rtast.fancybot.util.initFilesDir
|
import cn.rtast.fancybot.util.initFilesDir
|
||||||
|
import cn.rtast.fancybot.util.initSetuIndex
|
||||||
import cn.rtast.rob.ROneBotFactory
|
import cn.rtast.rob.ROneBotFactory
|
||||||
import cn.rtast.rob.entity.*
|
import cn.rtast.rob.entity.*
|
||||||
import cn.rtast.rob.entity.lagrange.FileEvent
|
import cn.rtast.rob.entity.lagrange.FileEvent
|
||||||
@@ -159,4 +160,5 @@ suspend fun main() {
|
|||||||
initDatabase()
|
initDatabase()
|
||||||
initFilesDir()
|
initFilesDir()
|
||||||
initCommandAndItem(rob)
|
initCommandAndItem(rob)
|
||||||
|
initSetuIndex()
|
||||||
}
|
}
|
||||||
+4
-9
@@ -1,22 +1,17 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024 RTAkland
|
* Copyright © 2024 RTAkland
|
||||||
* Author: RTAkland
|
* Author: RTAkland
|
||||||
* Date: 2024/9/29
|
* Date: 2024/10/6
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package cn.rtast.fancybot.entity.setu
|
package cn.rtast.fancybot.entity.setu
|
||||||
|
|
||||||
data class SetuV2(
|
data class SetuV3(
|
||||||
val pid: Long,
|
val pid: Long,
|
||||||
val uid: Long,
|
val uid: Long,
|
||||||
val title: String,
|
val title: String,
|
||||||
val author: String,
|
val author: String,
|
||||||
val urls: URLS,
|
val url: String,
|
||||||
val r18: Boolean,
|
val r18: Boolean,
|
||||||
val tags: List<String>
|
)
|
||||||
) {
|
|
||||||
data class URLS(
|
|
||||||
val regular: String,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@@ -7,9 +7,10 @@
|
|||||||
|
|
||||||
package cn.rtast.fancybot.items
|
package cn.rtast.fancybot.items
|
||||||
|
|
||||||
|
import cn.rtast.fancybot.ROOT_PATH
|
||||||
import cn.rtast.fancybot.configManager
|
import cn.rtast.fancybot.configManager
|
||||||
import cn.rtast.fancybot.entity.setu.Setu
|
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.Http
|
||||||
import cn.rtast.fancybot.util.item.Item
|
import cn.rtast.fancybot.util.item.Item
|
||||||
import cn.rtast.fancybot.util.str.encodeToBase64
|
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.NodeMessageChain
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
import cn.rtast.rob.util.ob.OneBotListener
|
||||||
import cn.rtast.rob.util.ob.asNode
|
import cn.rtast.rob.util.ob.asNode
|
||||||
|
import java.io.File
|
||||||
import java.net.URI
|
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 {
|
private fun getImages(r18: Boolean): NodeMessageChain {
|
||||||
val msg = mutableListOf<MessageChain>()
|
val msg = mutableListOf<MessageChain>()
|
||||||
if (r18) {
|
if (r18) {
|
||||||
val response = Http.get("https://api.rtast.cn/api/setu/v2?size=10")
|
val response = setuV3Index.shuffled().take(10)
|
||||||
.fromArrayJson<List<SetuV2>>()
|
|
||||||
msg.add(MessageChain.Builder().addText("因为是R18所以你需要自行访问链接来查看图片~").build())
|
msg.add(MessageChain.Builder().addText("因为是R18所以你需要自行访问链接来查看图片~").build())
|
||||||
response.forEach {
|
response.forEach {
|
||||||
try {
|
try {
|
||||||
val tempMsg = MessageChain.Builder()
|
val tempMsg = MessageChain.Builder()
|
||||||
.addText(it.urls.regular)
|
.addText(it.url)
|
||||||
.addNewLine()
|
.addNewLine()
|
||||||
.addText("标题: ${it.title}")
|
.addText("标题: ${it.title}")
|
||||||
.addNewLine()
|
.addNewLine()
|
||||||
.addText("作品ID: ${it.pid}")
|
.addText("作品ID: ${it.pid}")
|
||||||
.addNewLine()
|
.addNewLine()
|
||||||
.addText("作者: ${it.author}(${it.uid})")
|
.addText("作者: ${it.author}(${it.uid})")
|
||||||
.addNewLine()
|
|
||||||
.addText("标签: ${it.tags.joinToString(" | ")}")
|
|
||||||
.build()
|
.build()
|
||||||
msg.add(tempMsg)
|
msg.add(tempMsg)
|
||||||
} catch (_: Exception) {
|
} catch (_: Exception) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import cn.rtast.fancybot.*
|
|||||||
import cn.rtast.rob.ROneBotFactory
|
import cn.rtast.rob.ROneBotFactory
|
||||||
import cn.rtast.rob.util.ob.OneBotListener
|
import cn.rtast.rob.util.ob.OneBotListener
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.net.URI
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
fun randomBooleanWithProbability(probability: Double): Boolean {
|
fun randomBooleanWithProbability(probability: Double): Boolean {
|
||||||
@@ -33,3 +34,12 @@ fun initCommandAndItem(rob: ROneBotFactory) {
|
|||||||
fun initFilesDir() {
|
fun initFilesDir() {
|
||||||
File("./$ROOT_PATH/caches/images").also { it.mkdirs() }
|
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