From bb94e638cb4020563063356bd160858dd7ae4c07 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Fri, 25 Dec 2020 13:00:18 +0330 Subject: [PATCH] refactor database classes --- .../extension/api/ExtensionGithubApi.kt | 6 +- .../main/kotlin/ir/armor/tachidesk/Main.kt | 6 +- .../ir/armor/tachidesk/database/DBMangaer.kt | 4 +- .../database/dataclass/ExtensionDataClass.kt | 14 +++++ .../database/dataclass/SourceDataClass.kt | 9 +++ .../database/entity/ExtensionEntity.kt | 21 +++++++ .../tachidesk/database/entity/SourceEntity.kt | 17 ++++++ .../database/model/ExtensionTable.kt | 52 ----------------- .../tachidesk/database/model/SourcesTable.kt | 56 ------------------- .../database/table/ExtensionTable.kt | 18 ++++++ .../tachidesk/database/table/SourcesTable.kt | 12 ++++ 11 files changed, 99 insertions(+), 116 deletions(-) create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt delete mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/model/ExtensionTable.kt delete mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/model/SourcesTable.kt create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt create mode 100644 server/src/main/kotlin/ir/armor/tachidesk/database/table/SourcesTable.kt diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt index 71593f2..91a572c 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubApi.kt @@ -1,13 +1,10 @@ package eu.kanade.tachiyomi.extension.api //import android.content.Context -import com.github.salomonbrys.kotson.get -import com.github.salomonbrys.kotson.int //import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.extension.model.Extension -import eu.kanade.tachiyomi.extension.model.LoadResult import eu.kanade.tachiyomi.extension.util.ExtensionLoader -import ir.armor.tachidesk.database.model.ExtensionDataClass +import ir.armor.tachidesk.database.dataclass.ExtensionDataClass //import kotlinx.coroutines.Dispatchers //import kotlinx.coroutines.withContext import kotlinx.serialization.json.JsonArray @@ -15,7 +12,6 @@ import kotlinx.serialization.json.int import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive //import uy.kohesive.injekt.injectLazy -import java.util.Date internal class ExtensionGithubApi { diff --git a/server/src/main/kotlin/ir/armor/tachidesk/Main.kt b/server/src/main/kotlin/ir/armor/tachidesk/Main.kt index 64925fe..928844f 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/Main.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/Main.kt @@ -8,8 +8,12 @@ import eu.kanade.tachiyomi.source.SourceFactory import eu.kanade.tachiyomi.source.model.MangasPage import eu.kanade.tachiyomi.source.online.HttpSource import io.javalin.Javalin +import ir.armor.tachidesk.database.dataclass.ExtensionDataClass +import ir.armor.tachidesk.database.dataclass.SourceDataClass +import ir.armor.tachidesk.database.entity.ExtensionEntity +import ir.armor.tachidesk.database.entity.SourceEntity import ir.armor.tachidesk.database.makeDataBaseTables -import ir.armor.tachidesk.database.model.* +import ir.armor.tachidesk.database.table.* import kotlinx.coroutines.runBlocking import okhttp3.Request import okio.buffer diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt index 807490a..644f175 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt @@ -1,8 +1,8 @@ package ir.armor.tachidesk.database import ir.armor.tachidesk.Config -import ir.armor.tachidesk.database.model.ExtensionsTable -import ir.armor.tachidesk.database.model.SourcesTable +import ir.armor.tachidesk.database.table.ExtensionsTable +import ir.armor.tachidesk.database.table.SourcesTable import org.jetbrains.exposed.sql.Database import org.jetbrains.exposed.sql.SchemaUtils import org.jetbrains.exposed.sql.transactions.transaction diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt new file mode 100644 index 0000000..0855ce5 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt @@ -0,0 +1,14 @@ +package ir.armor.tachidesk.database.dataclass + +data class ExtensionDataClass( + val name: String, + val pkgName: String, + val versionName: String, + val versionCode: Int, + val lang: String, + val isNsfw: Boolean, + val apkName: String, + val iconUrl: String, + val installed: Boolean, + val classFQName: String, +) \ No newline at end of file diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt new file mode 100644 index 0000000..bcf1691 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt @@ -0,0 +1,9 @@ +package ir.armor.tachidesk.database.dataclass + +data class SourceDataClass( + val id: Long, + val name: String, + val lang: String, + val iconUrl: String, + val supportsLatest: Boolean +) \ No newline at end of file diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt new file mode 100644 index 0000000..8ce02e2 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt @@ -0,0 +1,21 @@ +package ir.armor.tachidesk.database.entity + +import ir.armor.tachidesk.database.table.ExtensionsTable +import org.jetbrains.exposed.dao.IntEntity +import org.jetbrains.exposed.dao.IntEntityClass +import org.jetbrains.exposed.dao.id.EntityID + +class ExtensionEntity(id: EntityID) : IntEntity(id) { + companion object : IntEntityClass(ExtensionsTable) + + var name by ExtensionsTable.name + var pkgName by ExtensionsTable.pkgName + var versionName by ExtensionsTable.versionName + var versionCode by ExtensionsTable.versionCode + var lang by ExtensionsTable.lang + var isNsfw by ExtensionsTable.isNsfw + var apkName by ExtensionsTable.apkName + var iconUrl by ExtensionsTable.iconUrl + var installed by ExtensionsTable.installed + var classFQName by ExtensionsTable.classFQName +} \ No newline at end of file diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt new file mode 100644 index 0000000..3a8a6a1 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt @@ -0,0 +1,17 @@ +package ir.armor.tachidesk.database.entity + +import ir.armor.tachidesk.database.table.SourcesTable +import org.jetbrains.exposed.dao.IntEntity +import org.jetbrains.exposed.dao.IntEntityClass +import org.jetbrains.exposed.dao.id.EntityID + +class SourceEntity(id: EntityID) : IntEntity(id) { + companion object : IntEntityClass(SourcesTable) + + var sourceId by SourcesTable.sourceId + var name by SourcesTable.name + var lang by SourcesTable.lang + var extension by ExtensionEntity referencedOn SourcesTable.extension + var partOfFactorySource by SourcesTable.partOfFactorySource + var positionInFactorySource by SourcesTable.positionInFactorySource +} \ No newline at end of file diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/model/ExtensionTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/model/ExtensionTable.kt deleted file mode 100644 index 9df365e..0000000 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/model/ExtensionTable.kt +++ /dev/null @@ -1,52 +0,0 @@ -package ir.armor.tachidesk.database.model - -import eu.kanade.tachiyomi.source.Source -import org.jetbrains.exposed.dao.IntEntity -import org.jetbrains.exposed.dao.IntEntityClass -import org.jetbrains.exposed.dao.id.EntityID -import org.jetbrains.exposed.dao.id.IntIdTable -import org.jetbrains.exposed.sql.Column -import org.jetbrains.exposed.sql.Table - - -object ExtensionsTable : IntIdTable() { - val name = varchar("name", 128) - val pkgName = varchar("pkg_name", 128) - val versionName = varchar("version_name", 16) - val versionCode = integer("version_code") - val lang = varchar("lang", 5) - val isNsfw = bool("is_nsfw") - val apkName = varchar("apk_name", 1024) - val iconUrl = varchar("icon_url", 2048) - - val installed = bool("installed").default(false) - val classFQName = varchar("class_name", 256).default("") // fully qualified name -} - -data class ExtensionDataClass( - val name: String, - val pkgName: String, - val versionName: String, - val versionCode: Int, - val lang: String, - val isNsfw: Boolean, - val apkName: String, - val iconUrl: String, - val installed: Boolean, - val classFQName: String, -) - -class ExtensionEntity(id: EntityID) : IntEntity(id) { - companion object : IntEntityClass(ExtensionsTable) - - var name by ExtensionsTable.name - var pkgName by ExtensionsTable.pkgName - var versionName by ExtensionsTable.versionName - var versionCode by ExtensionsTable.versionCode - var lang by ExtensionsTable.lang - var isNsfw by ExtensionsTable.isNsfw - var apkName by ExtensionsTable.apkName - var iconUrl by ExtensionsTable.iconUrl - var installed by ExtensionsTable.installed - var classFQName by ExtensionsTable.classFQName -} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/model/SourcesTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/model/SourcesTable.kt deleted file mode 100644 index 4bceec7..0000000 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/model/SourcesTable.kt +++ /dev/null @@ -1,56 +0,0 @@ -package ir.armor.tachidesk.database.model - -import org.jetbrains.exposed.dao.* -import org.jetbrains.exposed.dao.id.EntityID -import org.jetbrains.exposed.dao.id.IdTable -import org.jetbrains.exposed.dao.id.IntIdTable -import org.jetbrains.exposed.sql.Column -import org.jetbrains.exposed.sql.Table - -object SourcesTable : IntIdTable() { - val sourceId = long("source_id") - val name = varchar("name", 128) - val lang = varchar("lang", 5) - val extension = reference("extension", ExtensionsTable) - val partOfFactorySource = bool("part_of_factory_source").default(false) - val positionInFactorySource = integer("position_in_factory_source").nullable() -} - -data class SourceDataClass( - val id: Long, - val name: String, - val lang: String, - val iconUrl: String, - val supportsLatest: Boolean -) - -class SourceEntity(id: EntityID) : IntEntity(id) { - companion object : IntEntityClass(SourcesTable) - - var sourceId by SourcesTable.sourceId - var name by SourcesTable.name - var lang by SourcesTable.lang - var extension by ExtensionEntity referencedOn SourcesTable.extension - var partOfFactorySource by SourcesTable.partOfFactorySource - var positionInFactorySource by SourcesTable.positionInFactorySource -} - - -//object SourcesTable : IdTable() { -// override val id = long("id").entityId() -// val name= varchar("name", 128) -// val extension = reference("extension", ExtensionsTable) -// val partOfFactorySource = bool("part_of_factory_source").default(false) -// val positionInFactorySource = integer("position_in_factory_source").nullable() -// -// override val primaryKey = PrimaryKey(id) -//} -// -//class SourceEntity(id: EntityID) : LongEntity(id) { -// companion object : LongEntityClass(SourcesTable) -// -// var name by SourcesTable.name -// var extension by SourcesTable.extension -// var partOfFactorySource by SourcesTable.partOfFactorySource -// var positionInFactorySource by SourcesTable.positionInFactorySource -//} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt new file mode 100644 index 0000000..e7e9cd1 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt @@ -0,0 +1,18 @@ +package ir.armor.tachidesk.database.table + +import org.jetbrains.exposed.dao.id.IntIdTable + + +object ExtensionsTable : IntIdTable() { + val name = varchar("name", 128) + val pkgName = varchar("pkg_name", 128) + val versionName = varchar("version_name", 16) + val versionCode = integer("version_code") + val lang = varchar("lang", 5) + val isNsfw = bool("is_nsfw") + val apkName = varchar("apk_name", 1024) + val iconUrl = varchar("icon_url", 2048) + + val installed = bool("installed").default(false) + val classFQName = varchar("class_name", 256).default("") // fully qualified name +} \ No newline at end of file diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourcesTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourcesTable.kt new file mode 100644 index 0000000..1cc39b8 --- /dev/null +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourcesTable.kt @@ -0,0 +1,12 @@ +package ir.armor.tachidesk.database.table + +import org.jetbrains.exposed.dao.id.IntIdTable + +object SourcesTable : IntIdTable() { + val sourceId = long("source_id") + val name = varchar("name", 128) + val lang = varchar("lang", 5) + val extension = reference("extension", ExtensionsTable) + val partOfFactorySource = bool("part_of_factory_source").default(false) + val positionInFactorySource = integer("position_in_factory_source").nullable() +} \ No newline at end of file