生成wiki格式
This commit is contained in:
parent
6d6da49d50
commit
d6cde0c745
@ -1,4 +1,5 @@
|
|||||||
import database.TCard
|
import database.TCards
|
||||||
|
import database.card
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.encodeToString
|
import kotlinx.serialization.encodeToString
|
||||||
@ -10,10 +11,44 @@ import model.parseType
|
|||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.ktorm.database.Database
|
import org.ktorm.database.Database
|
||||||
import org.ktorm.dsl.*
|
import org.ktorm.dsl.*
|
||||||
|
import org.ktorm.entity.map
|
||||||
|
import org.ktorm.entity.sortedBy
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@ExperimentalSerializationApi
|
@ExperimentalSerializationApi
|
||||||
suspend fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
|
val database = Database.connect(
|
||||||
|
url = "jdbc:mysql://localhost:3306/sif_card",
|
||||||
|
driver = "com.mysql.cj.jdbc.Driver",
|
||||||
|
user = "root",
|
||||||
|
password = ""
|
||||||
|
)
|
||||||
|
|
||||||
|
database.useTransaction {
|
||||||
|
var latestGroup = ""
|
||||||
|
var index = -1
|
||||||
|
database.card.sortedBy({it.characterId.asc()}, {it.rarity.desc()}, {it.id.asc()}).map { card ->
|
||||||
|
if (latestGroup != card.group) {
|
||||||
|
latestGroup = card.group
|
||||||
|
if (index != -1) {
|
||||||
|
println("|}")
|
||||||
|
}
|
||||||
|
index = 0
|
||||||
|
println("== [[${card.group}]] ==")
|
||||||
|
println("{| class=\"wikitable sortable event-list mw-collapsible mw-collapsed\" width=\"100%\"\n" +
|
||||||
|
"! 序号 !! 角色 !! 卡牌名称 !! 通常图片 !! 觉醒图片 !! 稀有性 !! 所属小组 !! 实装日期 !! 属性 !! 最大等级 !! HP !! 微笑值 !! 清纯值 !! 帅气值 !! 核心技能名称 !! 核心技能详情 !! 特殊技能名称 !! 特殊技能详情")
|
||||||
|
}
|
||||||
|
println("|-")
|
||||||
|
println("| ${++index} || ${card.name} || ${card.characterName} || ${card.illustId} || ${card.evolveIllustId}" +
|
||||||
|
" || ${card.rarity} || ${card.team} || ${card.date} || ${card.type} || ${card.maxLevel} || ${card.maxHp}" +
|
||||||
|
" || ${card.smile} || ${card.pure} || ${card.cool} || ${card.centerSkillName}" +
|
||||||
|
" || ${card.centerSkillInfo} || ${card.specialSkillName} || ${card.specialSkillInfo}")
|
||||||
|
}
|
||||||
|
println("|}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
suspend fun importData() {
|
||||||
val cardList = readJson<List<Card>>(fileName = "card.json")
|
val cardList = readJson<List<Card>>(fileName = "card.json")
|
||||||
cardList.forEach { card ->
|
cardList.forEach { card ->
|
||||||
card.illustId = "c_${card.illustId}.png"
|
card.illustId = "c_${card.illustId}.png"
|
||||||
@ -32,12 +67,12 @@ suspend fun main(args: Array<String>) {
|
|||||||
cardList.forEach { card ->
|
cardList.forEach { card ->
|
||||||
database.useTransaction {
|
database.useTransaction {
|
||||||
var id = -1
|
var id = -1
|
||||||
for (row in database.from(TCard).select().where { TCard.name eq card.name }) {
|
for (row in database.from(TCards).select().where { TCards.name eq card.name }) {
|
||||||
row[TCard.characterName]?.let { characterName ->
|
row[TCards.characterName]?.let { characterName ->
|
||||||
if (characterName.isNotEmpty()) {
|
if (characterName.isNotEmpty()) {
|
||||||
return@forEach
|
return@forEach
|
||||||
}
|
}
|
||||||
id = row[TCard.id]!!
|
id = row[TCards.id]!!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +130,7 @@ suspend fun main(args: Array<String>) {
|
|||||||
println(card)
|
println(card)
|
||||||
|
|
||||||
if (id == -1) {
|
if (id == -1) {
|
||||||
database.insert(TCard) {
|
database.insert(TCards) {
|
||||||
set(it.name, card.name)
|
set(it.name, card.name)
|
||||||
set(it.characterId, card.characterId)
|
set(it.characterId, card.characterId)
|
||||||
set(it.characterName, card.characterName)
|
set(it.characterName, card.characterName)
|
||||||
@ -117,7 +152,7 @@ suspend fun main(args: Array<String>) {
|
|||||||
set(it.specialSkillInfo, card.specialSkillInfo)
|
set(it.specialSkillInfo, card.specialSkillInfo)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
database.update(TCard) {
|
database.update(TCards) {
|
||||||
set(it.characterName, card.characterName)
|
set(it.characterName, card.characterName)
|
||||||
set(it.type, card.type)
|
set(it.type, card.type)
|
||||||
set(it.rarity, card.rarity)
|
set(it.rarity, card.rarity)
|
||||||
@ -135,7 +170,7 @@ suspend fun main(args: Array<String>) {
|
|||||||
set(it.centerSkillInfo, card.centerSkillInfo)
|
set(it.centerSkillInfo, card.centerSkillInfo)
|
||||||
set(it.specialSkillName, card.specialSkillName)
|
set(it.specialSkillName, card.specialSkillName)
|
||||||
set(it.specialSkillInfo, card.specialSkillInfo)
|
set(it.specialSkillInfo, card.specialSkillInfo)
|
||||||
where { TCard.id eq id }
|
where { TCards.id eq id }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,58 @@
|
|||||||
package database
|
package database
|
||||||
|
|
||||||
|
import org.ktorm.database.Database
|
||||||
|
import org.ktorm.entity.Entity
|
||||||
|
import org.ktorm.entity.sequenceOf
|
||||||
import org.ktorm.schema.Table
|
import org.ktorm.schema.Table
|
||||||
import org.ktorm.schema.int
|
import org.ktorm.schema.int
|
||||||
import org.ktorm.schema.varchar
|
import org.ktorm.schema.varchar
|
||||||
|
|
||||||
object TCard : Table<Nothing>("t_card") {
|
val Database.card get() = this.sequenceOf(TCards)
|
||||||
val id = int("id").primaryKey()
|
|
||||||
val name = varchar("name")
|
interface TCard : Entity<TCard> {
|
||||||
val characterId = int("character_id")
|
companion object : Entity.Factory<TCard>()
|
||||||
val characterName = varchar("character_name")
|
|
||||||
val type = varchar("type")
|
val id: Int
|
||||||
val rarity = varchar("rarity")
|
val name: String
|
||||||
val maxLevel = varchar("max_level")
|
val characterId: Int
|
||||||
val maxHp = varchar("max_hp")
|
val characterName: String
|
||||||
val smile = varchar("smile")
|
val type: String
|
||||||
val pure = varchar("pure")
|
val rarity: String
|
||||||
val cool = varchar("cool")
|
val maxLevel: String
|
||||||
val illustId = varchar("illust_id")
|
val maxHp: String
|
||||||
val evolveIllustId = varchar("evolve_illust_id")
|
val smile: String
|
||||||
val group = varchar("group")
|
val pure: String
|
||||||
val team = varchar("team")
|
val cool: String
|
||||||
val date = varchar("date")
|
val illustId: String
|
||||||
val centerSkillName = varchar("center_skill_name")
|
val evolveIllustId: String
|
||||||
val centerSkillInfo = varchar("center_skill_info")
|
val group: String
|
||||||
val specialSkillName = varchar("special_skill_name")
|
val team: String
|
||||||
val specialSkillInfo = varchar("special_skill_info")
|
val date: String
|
||||||
|
val centerSkillName: String
|
||||||
|
val centerSkillInfo: String
|
||||||
|
val specialSkillName: String
|
||||||
|
val specialSkillInfo: String
|
||||||
|
}
|
||||||
|
|
||||||
|
object TCards : Table<TCard>("t_card") {
|
||||||
|
val id = int("id").primaryKey().bindTo { it.id }
|
||||||
|
val name = varchar("name").bindTo { it.name }
|
||||||
|
val characterId = int("character_id").bindTo { it.characterId }
|
||||||
|
val characterName = varchar("character_name").bindTo { it.characterName }
|
||||||
|
val type = varchar("type").bindTo { it.type }
|
||||||
|
val rarity = varchar("rarity").bindTo { it.rarity }
|
||||||
|
val maxLevel = varchar("max_level").bindTo { it.maxLevel }
|
||||||
|
val maxHp = varchar("max_hp").bindTo { it.maxHp }
|
||||||
|
val smile = varchar("smile").bindTo { it.smile }
|
||||||
|
val pure = varchar("pure").bindTo { it.pure }
|
||||||
|
val cool = varchar("cool").bindTo { it.cool }
|
||||||
|
val illustId = varchar("illust_id").bindTo { it.illustId }
|
||||||
|
val evolveIllustId = varchar("evolve_illust_id").bindTo { it.evolveIllustId }
|
||||||
|
val group = varchar("group").bindTo { it.group }
|
||||||
|
val team = varchar("team").bindTo { it.team }
|
||||||
|
val date = varchar("date").bindTo { it.date }
|
||||||
|
val centerSkillName = varchar("center_skill_name").bindTo { it.centerSkillName }
|
||||||
|
val centerSkillInfo = varchar("center_skill_info").bindTo { it.centerSkillInfo }
|
||||||
|
val specialSkillName = varchar("special_skill_name").bindTo { it.specialSkillName }
|
||||||
|
val specialSkillInfo = varchar("special_skill_info").bindTo { it.specialSkillInfo }
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user