Skip to content

Commit

Permalink
refactor: rename part of the file name and package name
Browse files Browse the repository at this point in the history
  • Loading branch information
half-nothing committed Jan 19, 2025
1 parent 3177d55 commit 741d777
Show file tree
Hide file tree
Showing 38 changed files with 433 additions and 323 deletions.
15 changes: 10 additions & 5 deletions assets/init.sql
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS "metadata"
"value" TEXT NOT NULL
);

CREATE TABLE IF NOT EXISTS "model_info"
CREATE TABLE IF NOT EXISTS "char_info"
(
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"asset_id" TEXT NOT NULL,
Expand All @@ -27,16 +27,18 @@ CREATE TABLE IF NOT EXISTS "model_assets"
"model_id" INTEGER NOT NULL,
"type" TEXT NOT NULL,
"filename" TEXT NOT NULL,
"md5" TEXT NOT NULL DEFAULT '',
"exist" BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT "model_assets_fk_id" FOREIGN KEY ("model_id") REFERENCES "model_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
"vcs" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "model_assets_fk_id" FOREIGN KEY ("model_id") REFERENCES "char_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE IF NOT EXISTS "model_tags"
(
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"model_id" INTEGER NOT NULL,
"tag" TEXT NOT NULL,
CONSTRAINT "model_tags_fk_id" FOREIGN KEY ("model_id") REFERENCES "model_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
CONSTRAINT "model_tags_fk_id" FOREIGN KEY ("model_id") REFERENCES "char_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE IF NOT EXISTS "model_voice"
Expand All @@ -45,8 +47,10 @@ CREATE TABLE IF NOT EXISTS "model_voice"
"model_id" INTEGER NOT NULL,
"language" TEXT NOT NULL,
"duration" DOUBLE NOT NULL,
"md5" TEXT NOT NULL DEFAULT '',
"exist" BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT "model_voice_fk_id" FOREIGN KEY ("model_id") REFERENCES "model_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
"vcs" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "model_voice_fk_id" FOREIGN KEY ("model_id") REFERENCES "char_info" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE TABLE IF NOT EXISTS "model_voice_clips"
Expand All @@ -57,8 +61,9 @@ CREATE TABLE IF NOT EXISTS "model_voice_clips"
"duration" DOUBLE NOT NULL,
CONSTRAINT "model_voice_clips_fk_id" FOREIGN KEY ("model_voice_id") REFERENCES "model_voice" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);

CREATE UNIQUE INDEX IF NOT EXISTS "metadata_index" ON "metadata" ("repo", "group", "key");
CREATE UNIQUE INDEX IF NOT EXISTS "model_info_asset_id_index" ON "model_info" ("asset_id");
CREATE UNIQUE INDEX IF NOT EXISTS "char_info_asset_id_index" ON "char_info" ("asset_id");
CREATE INDEX IF NOT EXISTS "model_assets_model_id_index" ON "model_assets" ("model_id");
CREATE INDEX IF NOT EXISTS "model_tags_model_id_index" ON "model_tags" ("model_id");
CREATE INDEX IF NOT EXISTS "model_voice_model_id_index" ON "model_voice" ("model_id");
Expand Down
23 changes: 20 additions & 3 deletions core/src/cn/harryh/arkpets/Const.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,29 @@ public static class PathConfig {
public static final Version databaseVersion = new Version(1, 0, 0);
}

public static class RepositoryConfig {
public static class ModelRepository {
public static class MetadataGroup {
public static final String defaultGroup = "default";
public static final String sortTagGroup = "sortTag";
}

public static final String repoName = "ModelRepository";
public static final String repoPath = "models";
public static final String metadataFilePath = "models_data.json";
}

public static class MetadataGroup {
public static final String defaultGroup = "default";
public static final String sortTagGroup = "sortTag";
public static class VoiceRepository {
public static class MetadataGroup {
public static final String defaultGroup = "default";
}

public static final String repoName = "VoiceRepository";
public static final String repoPath = "voice";
}
}


/** Logging presets definition class.
*/
public static class LogConfig {
Expand Down
6 changes: 4 additions & 2 deletions desktop/src/cn/harryh/arkpets/DesktopLauncher.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
*/
package cn.harryh.arkpets;

import cn.harryh.arkpets.kt.ModelManager;
import cn.harryh.arkpets.kt.repository.ModelRepository;
import cn.harryh.arkpets.kt.repository.VoiceRepository;
import cn.harryh.arkpets.utils.ArgPending;
import cn.harryh.arkpets.utils.Logger;
import javafx.application.Application;
Expand Down Expand Up @@ -64,7 +65,8 @@ protected void process(String command, String addition) {
if (Objects.equals(System.getenv("VCS_DEBUG"), "TRUE")) {
Logger.setLevel(Logger.DEBUG);
Long startTime = System.currentTimeMillis();
ModelManager.INSTANCE.init("models_data.json");
ModelRepository.INSTANCE.initRepository();
VoiceRepository.INSTANCE.initRepository();
Long endTime = System.currentTimeMillis();
Logger.info("System", "VCS_DEBUG: " + (endTime - startTime) + " ms");
return;
Expand Down
110 changes: 0 additions & 110 deletions desktop/src/cn/harryh/arkpets/kt/ModelManager.kt

This file was deleted.

96 changes: 2 additions & 94 deletions desktop/src/cn/harryh/arkpets/kt/database/DatabaseHelper.kt
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
package cn.harryh.arkpets.kt.database

import cn.harryh.arkpets.Const
import cn.harryh.arkpets.kt.database.entity.Metadata
import cn.harryh.arkpets.kt.database.entity.ModelAsset
import cn.harryh.arkpets.kt.database.entity.ModelInfo
import cn.harryh.arkpets.kt.database.entity.ModelTag
import cn.harryh.arkpets.kt.database.repository.MetadataRepository
import cn.harryh.arkpets.kt.database.repository.ModelAssetRepository
import cn.harryh.arkpets.kt.database.repository.ModelInfoRepository
import cn.harryh.arkpets.kt.database.repository.ModelTagRepository
import cn.harryh.arkpets.utils.Logger
import org.ktorm.database.Database
import java.io.File
Expand All @@ -21,13 +13,8 @@ import kotlin.io.path.createDirectories
import kotlin.io.path.exists

object DatabaseHelper {
private lateinit var database: Database
private var connection: Connection

private val metadataRepository: MetadataRepository by lazy { MetadataRepository(database) }
private val modelInfoRepository: ModelInfoRepository by lazy { ModelInfoRepository(database) }
private val modelAssetRepository: ModelAssetRepository by lazy { ModelAssetRepository(database) }
private val modelTagRepository: ModelTagRepository by lazy { ModelTagRepository(database) }
private val database: Database
private val connection: Connection

init {
val path = Path(Const.PathConfig.dataDirPath)
Expand Down Expand Up @@ -63,83 +50,4 @@ object DatabaseHelper {
}

fun getDatabase(): Database = database

fun addMetaData(group: String, key: String, value: String) {
metadataRepository.addInsert(
Metadata {
this.repo = "model"
this.group = group
this.key = key
this.value = value
}
)
}

fun updateMetaData(metadata: Metadata) {
metadataRepository.addUpdate(metadata)
}

fun addModelInfo(modelInfo: ModelInfo) {
modelInfoRepository.addInsert(modelInfo)
}

fun updateModelInfo(modelInfo: ModelInfo) {
modelInfoRepository.addUpdate(modelInfo)
}

fun addModelTags(modelInfo: ModelInfo, tags: List<String>) {
tags.forEach {
modelTagRepository.addInsert(
ModelTag {
this.modelInfo = modelInfo
this.tag = it
}
)
}
}

fun updateModelTags(modelTag: ModelTag) {
modelTagRepository.addUpdate(modelTag)
}

fun addModelAssets(modelInfo: ModelInfo, assetMap: Map<String, Any>) {
val assetList = mutableListOf<Pair<String, String>>()
assetMap.forEach {
if (it.value is String) {
assetList.add(Pair(it.key, it.value as String))
return@forEach
}
if (it.value is List<*>) {
(it.value as List<*>).forEach { filename -> assetList.add(Pair(it.key, filename as String)) }
}
}
addModelAssets(modelInfo, assetList)
}

private fun addModelAssets(modelInfo: ModelInfo, assetList: List<Pair<String, String>>) {
assetList.forEach { addModelAssets(modelInfo, it.first, it.second) }
}

private fun addModelAssets(modelInfo: ModelInfo, key: String, value: String) {
modelAssetRepository.addInsert(
ModelAsset {
this.modelInfo = modelInfo
this.type = key
this.filename = value
}
)
}

fun updateModelAssets(modelAsset: ModelAsset) {
modelAssetRepository.addInsert(modelAsset)
}

fun executePendingOperations() {
database.useTransaction {
metadataRepository.executePendingOperations()
modelInfoRepository.executePendingOperations()
modelAssetRepository.executePendingOperations()
modelTagRepository.executePendingOperations()
}
}
}
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package cn.harryh.arkpets.kt.database.repository
package cn.harryh.arkpets.kt.database.buffer

import cn.harryh.arkpets.kt.database.entity.ModelInfo
import cn.harryh.arkpets.kt.database.model.ModelInfos
import cn.harryh.arkpets.kt.database.entity.CharInfo
import cn.harryh.arkpets.kt.database.tables.CharInfos
import org.ktorm.database.Database
import org.ktorm.dsl.AssignmentsBuilder
import org.ktorm.dsl.batchInsert
import org.ktorm.dsl.batchUpdate
import org.ktorm.dsl.eq

class ModelInfoRepository(database: Database) : Repository<ModelInfo>(database) {
class CharInfoSqlBuffer(database: Database) : SqlBuffer<CharInfo>(database) {
override fun pendingInserts() {
database.batchInsert(ModelInfos) {
database.batchInsert(CharInfos) {
pendingInserts.forEach { info -> item { setData(it, info) } }
}
}

override fun pendingUpdates() {
database.batchUpdate(ModelInfos) {
database.batchUpdate(CharInfos) {
pendingUpdates.forEach { info ->
item {
setData(it, info)
Expand All @@ -26,7 +26,7 @@ class ModelInfoRepository(database: Database) : Repository<ModelInfo>(database)
}
}

private fun AssignmentsBuilder.setData(it: ModelInfos, info: ModelInfo) {
private fun AssignmentsBuilder.setData(it: CharInfos, info: CharInfo) {
set(it.assetId, info.assetId)
set(it.storePath, info.storePath)
set(it.type, info.type)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package cn.harryh.arkpets.kt.database.repository
package cn.harryh.arkpets.kt.database.buffer

import cn.harryh.arkpets.kt.database.entity.Metadata
import cn.harryh.arkpets.kt.database.model.MetadataList
import cn.harryh.arkpets.kt.database.tables.MetadataList
import org.ktorm.database.Database
import org.ktorm.dsl.batchInsert
import org.ktorm.dsl.batchUpdate
import org.ktorm.dsl.eq

class MetadataRepository(database: Database) : Repository<Metadata>(database) {
class MetadataSqlBuffer(database: Database) : SqlBuffer<Metadata>(database) {
override fun pendingInserts() {
database.batchInsert(MetadataList) {
pendingInserts.forEach { info ->
Expand Down
Loading

0 comments on commit 741d777

Please sign in to comment.