添加常规信息解析
This commit is contained in:
parent
ef92c3fb7f
commit
33e34c680e
@ -13,6 +13,7 @@ repositories {
|
||||
dependencies {
|
||||
testImplementation 'org.jetbrains.kotlin:kotlin-test'
|
||||
implementation('org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1')
|
||||
implementation 'org.jsoup:jsoup:1.18.3'
|
||||
}
|
||||
|
||||
test {
|
||||
|
@ -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)
|
||||
}
|
@ -2,18 +2,36 @@ package model
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
fun parseType(type: String): Int {
|
||||
println("parseType: $type")
|
||||
return when (type) {
|
||||
"スマイル" -> 1
|
||||
"ピュア" -> 2
|
||||
"クール" -> 3
|
||||
else -> 1
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class Card (
|
||||
val id: Int, // 卡牌id
|
||||
val masterCharacterId: Int, // 角色id
|
||||
val name: String, // 卡牌名称
|
||||
val type: Int, // 类型 1:甜美 2:清纯 3:帅气
|
||||
val rarity: Int, // 稀有性 1:UR 2:SR 3:R
|
||||
val hp: Int, // 血量
|
||||
val smile: Int, // 甜美值
|
||||
val cool: Int, // 清纯值
|
||||
val pure: Int, // 帅气值
|
||||
val characterId: Int, // 角色id
|
||||
var characterName: String? = "", // 角色名称
|
||||
var type: Int? = 1, // 类型 1:甜美 2:清纯 3:帅气
|
||||
var rarity: String? = "R", // 稀有性 1:UR 2:SR 3:R
|
||||
var maxLevel: String? = "", // 最大等级
|
||||
var maxHp: String? = "1", // 最大血量
|
||||
var smile: String? = "1", // 甜美值
|
||||
var cool: String? = "1", // 清纯值
|
||||
var pure: String? = "1", // 帅气值
|
||||
var illustId: String, // 通常图片文件名
|
||||
var evolveIllustId: String, // 觉醒图片文件名
|
||||
var url: String? = null, // gamech url
|
||||
var group: String? = "", // 所属团组
|
||||
var team: String? = "", // 所属小组名
|
||||
var date: String? = "", // 实装日期
|
||||
var centerSkillName: String? = "", // 中心技能名称
|
||||
var centerSkillInfo: String? = "", // 中心技能介绍
|
||||
var specialSkillName: String? = "", // 中心技能名称
|
||||
var specialSkillInfo: String? = "", // 中心技能介绍
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user