添加常规信息解析

This commit is contained in:
2025-01-14 01:40:21 +08:00
parent ef92c3fb7f
commit 33e34c680e
4 changed files with 670 additions and 4062 deletions

View File

@@ -4,6 +4,8 @@ import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import model.Card
import model.GameCh
import model.parseType
import org.jsoup.Jsoup
import java.io.File
@ExperimentalSerializationApi
@@ -18,16 +20,61 @@ fun main(args: Array<String>) {
cardList.forEach { card ->
gameList.find { gameCh -> gameCh.name.contains(card.name) }?.let { gameCh ->
card.url = gameCh.url
println(gameCh.url)
val doc = Jsoup.connect(gameCh.url).get()
val elements = doc.select(".markup.mu")
val tables = elements.select(".mu__table")
tables.forEach { element ->
println(element)
println("------------")
}
card.characterName = elements.select(".mu__index").select("p").text().substringBefore(")").substringAfter("")
tables[1].select(".mu__table--row1").apply {
card.rarity = select(".mu__table--col2").text()
card.maxLevel = select(".mu__table--col4").text()
}
tables[1].select(".mu__table--row2").apply {
select(".mu__table--col2").text().let {
card.type = parseType(it)
}
}
tables[1].select(".mu__table--row3").apply {
card.group = select(".mu__table--col2").text()
card.team = select(".mu__table--col4").text()
}
tables[1].select(".mu__table--row4").apply {
card.date = select(".mu__table--col2").text().substringBefore("")
}
tables[2].select(".mu__table--row1").apply {
card.maxHp = select(".mu__table--col2").text()
card.smile = select(".mu__table--col4").text()
}
tables[2].select(".mu__table--row2").apply {
card.pure = select(".mu__table--col2").text()
card.cool = select(".mu__table--col4").text()
}
tables[3].select(".mu__table--row1").apply {
card.centerSkillName = select(".mu__table--col1").text()
}
tables[3].select(".mu__table--row2").apply {
card.centerSkillInfo = select(".mu__table--col1").text()
}
tables[4].select(".mu__table--row1").apply {
card.specialSkillName = select(".mu__table--col1").text()
}
tables[4].select(".mu__table--row2").apply {
card.specialSkillInfo = select(".mu__table--col1").text()
}
}
println(card)
return
}
val encodeJson = Json { prettyPrint = true }
val prettyJson = encodeJson.encodeToString(cardList)
// println(prettyJson)
val outputFile = File("src/main/resources/card_fix.json")
outputFile.writeText(prettyJson)
}
@OptIn(ExperimentalSerializationApi::class)
@@ -35,4 +82,14 @@ inline fun <reified T> readJson(fileName: String): T {
val fis = object {}.javaClass.getResourceAsStream(fileName)!!
val decodeJson = Json { ignoreUnknownKeys = true }
return decodeJson.decodeFromStream<T>(fis)
}
inline fun <reified T> prettyPrint(data: T): String {
val encodeJson = Json { prettyPrint = true }
return encodeJson.encodeToString(data)
}
fun writeFile(text: String) {
val outputFile = File("src/main/resources/card_fix.json")
outputFile.writeText(text)
}