forked from Cookies_Github_mirror/AquaDX
[F] Fix artemis conversion
This commit is contained in:
@@ -1,31 +0,0 @@
|
||||
package icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external;
|
||||
|
||||
import icu.samnyan.aqua.sega.chusan.model.userdata.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* This class is use for exporting chusan profile
|
||||
* @author samnyan (publicamusement@protonmail.com)
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class Chu3DataExport {
|
||||
public String gameId = "SDHD";
|
||||
public UserData userData;
|
||||
public UserGameOption userGameOption;
|
||||
public List<UserActivity> userActivityList;
|
||||
public List<UserCharacter> userCharacterList;
|
||||
public List<UserCharge> userChargeList;
|
||||
public List<UserCourse> userCourseList;
|
||||
public List<UserDuel> userDuelList;
|
||||
public List<UserItem> userItemList;
|
||||
public List<UserMapArea> userMapList;
|
||||
public List<UserMusicDetail> userMusicDetailList;
|
||||
public List<UserPlaylog> userPlaylogList;
|
||||
public List<UserLoginBonus> userLoginBonusList;
|
||||
}
|
||||
22
src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt
vendored
Normal file
22
src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
package icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external
|
||||
|
||||
import icu.samnyan.aqua.sega.chusan.model.userdata.*
|
||||
|
||||
data class Chu3DataExport(
|
||||
var gameId: String = "SDHD",
|
||||
var userData: UserData,
|
||||
var userGameOption: UserGameOption,
|
||||
var userActivityList: List<UserActivity>,
|
||||
var userCharacterList: List<UserCharacter>,
|
||||
var userChargeList: List<UserCharge>,
|
||||
var userCourseList: List<UserCourse>,
|
||||
var userDuelList: List<UserDuel>,
|
||||
var userItemList: List<UserItem>,
|
||||
var userMapList: List<UserMapArea>,
|
||||
var userMusicDetailList: List<UserMusicDetail>,
|
||||
var userPlaylogList: List<UserPlaylog>,
|
||||
var userLoginBonusList: List<UserLoginBonus>,
|
||||
) {
|
||||
constructor() : this("SDHD", UserData(), UserGameOption(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList())
|
||||
}
|
||||
|
||||
@@ -4,12 +4,11 @@ import com.fasterxml.jackson.core.JsonParser
|
||||
import com.fasterxml.jackson.databind.DeserializationContext
|
||||
import com.fasterxml.jackson.databind.JsonDeserializer
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule
|
||||
import ext.API
|
||||
import ext.JACKSON
|
||||
import ext.minus
|
||||
import ext.splitLines
|
||||
import ext.*
|
||||
import java.lang.reflect.Field
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KMutableProperty1
|
||||
import kotlin.reflect.KProperty1
|
||||
|
||||
// Import class with renaming
|
||||
data class ImportClass<T : Any>(
|
||||
@@ -19,7 +18,7 @@ data class ImportClass<T : Any>(
|
||||
)
|
||||
|
||||
abstract class ImportController<T: Any>(
|
||||
val exportFields: Map<String, Field>,
|
||||
val exportFields: Map<String, KMutableProperty1<T, Any>>,
|
||||
val renameTable: Map<String, ImportClass<*>>
|
||||
) {
|
||||
abstract fun createEmpty(): T
|
||||
@@ -35,14 +34,14 @@ abstract class ImportController<T: Any>(
|
||||
*/
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
@API("convert-artemis")
|
||||
fun importArtemisSql(sql: String): ImportResult {
|
||||
fun importArtemisSql(@RB sql: String): ImportResult {
|
||||
val data = createEmpty()
|
||||
val errors = ArrayList<String>()
|
||||
val warnings = ArrayList<String>()
|
||||
fun err(msg: String) { errors.add(msg) }
|
||||
fun warn(msg: String) { warnings.add(msg) }
|
||||
|
||||
val lists = exportFields.filter { it.value.type == List::class.java }
|
||||
val lists = exportFields.filter { it.value returns List::class }
|
||||
.mapValues { it.value.get(data) as ArrayList<Any> }
|
||||
|
||||
val statements = sql.splitLines().mapNotNull {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package icu.samnyan.aqua.net.games.chu3
|
||||
|
||||
import ext.API
|
||||
import ext.vars
|
||||
import icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external.Chu3DataExport
|
||||
import icu.samnyan.aqua.net.games.ImportClass
|
||||
import icu.samnyan.aqua.net.games.ImportController
|
||||
@@ -10,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController
|
||||
@RestController
|
||||
@API("api/v2/game/chu3")
|
||||
class Chu3Import : ImportController<Chu3DataExport>(
|
||||
exportFields = Chu3DataExport::class.java.declaredFields.associateBy {
|
||||
exportFields = Chu3DataExport::class.vars().associateBy {
|
||||
var name = it.name
|
||||
if (name == "userMapList") name = "userMapAreaList"
|
||||
name.replace("List", "").lowercase()
|
||||
@@ -33,6 +34,5 @@ class Chu3Import : ImportController<Chu3DataExport>(
|
||||
// "chuni_profile_recent_rating" to ImportClass(UserRecentRating::class),
|
||||
)
|
||||
) {
|
||||
override fun createEmpty() = Chu3DataExport("SDEZ", UserData(), UserGameOption(), ArrayList(), ArrayList(),
|
||||
ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList())
|
||||
override fun createEmpty() = Chu3DataExport()
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package icu.samnyan.aqua.net.games.mai2
|
||||
|
||||
import ext.API
|
||||
import ext.vars
|
||||
import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.Maimai2DataExport
|
||||
import icu.samnyan.aqua.net.games.ImportClass
|
||||
import icu.samnyan.aqua.net.games.ImportController
|
||||
@@ -10,7 +11,7 @@ import org.springframework.web.bind.annotation.RestController
|
||||
@RestController
|
||||
@API("api/v2/game/mai2")
|
||||
class Mai2Import : ImportController<Maimai2DataExport>(
|
||||
exportFields = Maimai2DataExport::class.java.declaredFields.associateBy {
|
||||
exportFields = Maimai2DataExport::class.vars().associateBy {
|
||||
it.name.replace("List", "").lowercase()
|
||||
},
|
||||
renameTable = mapOf(
|
||||
|
||||
Reference in New Issue
Block a user