fix: [ongeki] fix field matching in importer

This commit is contained in:
Raymond
2026-06-06 23:07:27 -04:00
parent f750cc6596
commit 5be6d8c80b
3 changed files with 8 additions and 5 deletions
@@ -26,7 +26,10 @@ class OngekiImport(
.filter { f -> f.name !in setOf("gameId", "userData") }
.associateWith { OngekiUserRepos::class.declaredMembers
.filter { f -> f returns OngekiUserLinked::class }
.firstOrNull { f -> f.name == it.name || f.name == it.name.replace("List", "") }
.firstOrNull { f -> f.name == it.name
|| f.name == (it.name.substring(4, 5).lowercase() + it.name.substring(5)) // strip user
|| f.name == it.name.replace("List", "")
}
?.call(repos) as OngekiUserLinked<*>? ?: error("No matching field found for ${it.name}")
},
artemisRenames = mapOf() // TODO (almost nobody uses this so it's very low priority)
@@ -57,7 +60,7 @@ data class OngekiDataExport(
var userMusicItem: List<UserMusicItem>,
var userOption: UserOption,
var userPlaylog: List<UserPlaylog>,
var userRivalData: List<UserRival>,
var userRival: List<UserRival>,
var userScenario: List<UserScenario>,
var userStory: List<UserStory>,
var userTechCount: List<UserTechCount>,
@@ -111,7 +111,7 @@ interface OgkUserOptionRepo : OngekiUserLinked<UserOption>
interface OgkUserPlaylogRepo : OngekiUserLinked<UserPlaylog>, GenericPlaylogRepo<UserPlaylog>
interface OgkUserRivalDataRepo : OngekiUserLinked<UserRival>
interface OgkUserRivalRepo : OngekiUserLinked<UserRival>
interface OgkUserScenarioRepo : OngekiUserLinked<UserScenario> {
fun findByUserAndScenarioId(user: UserData, scenarioId: Int): UserScenario?
@@ -187,7 +187,7 @@ class OngekiUserRepos(
val musicItem: OgkUserMusicItemRepo,
val option: OgkUserOptionRepo,
val playlog: OgkUserPlaylogRepo,
val rivalData: OgkUserRivalDataRepo,
val rival: OgkUserRivalRepo,
val scenario: OgkUserScenarioRepo,
val story: OgkUserStoryRepo,
val techCount: OgkUserTechCountRepo,
@@ -32,7 +32,7 @@ fun OngekiController.initUser() {
"GetUserLoginBonus".unpaged { db.loginBonus.findByUser_Card_ExtId(uid) }
"GetUserMissionPoint".unpaged { db.missionPoint.findByUser_Card_ExtId(uid) }
"GetUserMusicItem".unpaged { db.musicItem.findByUser_Card_ExtId(uid) }
"GetUserRival".unpaged { db.rivalData.findByUser_Card_ExtId(uid) }
"GetUserRival".unpaged { db.rival.findByUser_Card_ExtId(uid) }
"GetUserScenario".unpaged { db.scenario.findByUser_Card_ExtId(uid) }
"GetUserSkin".unpaged { db.skin.findByUser_Card_ExtId(uid) }
"GetUserStory".unpaged { db.story.findByUser_Card_ExtId(uid) }