rename tables

This commit is contained in:
Aria Moradi 2021-01-19 16:02:23 +03:30
parent 32a9321b8a
commit 590be4f04b
7 changed files with 39 additions and 45 deletions

View File

@ -2,8 +2,8 @@ package ir.armor.tachidesk.database
import ir.armor.tachidesk.Config import ir.armor.tachidesk.Config
import ir.armor.tachidesk.database.table.ExtensionsTable import ir.armor.tachidesk.database.table.ExtensionsTable
import ir.armor.tachidesk.database.table.MangasTable import ir.armor.tachidesk.database.table.MangaTable
import ir.armor.tachidesk.database.table.SourcesTable import ir.armor.tachidesk.database.table.SourceTable
import org.jetbrains.exposed.sql.Database import org.jetbrains.exposed.sql.Database
import org.jetbrains.exposed.sql.SchemaUtils import org.jetbrains.exposed.sql.SchemaUtils
import org.jetbrains.exposed.sql.transactions.transaction import org.jetbrains.exposed.sql.transactions.transaction
@ -20,7 +20,7 @@ fun makeDataBaseTables() {
transaction { transaction {
SchemaUtils.create(ExtensionsTable) SchemaUtils.create(ExtensionsTable)
SchemaUtils.create(SourcesTable) SchemaUtils.create(SourceTable)
SchemaUtils.create(MangasTable) SchemaUtils.create(MangaTable)
} }
} }

View File

@ -1,24 +1,23 @@
package ir.armor.tachidesk.database.entity package ir.armor.tachidesk.database.entity
import ir.armor.tachidesk.database.table.MangasTable import ir.armor.tachidesk.database.table.MangaTable
import ir.armor.tachidesk.database.table.SourcesTable
import org.jetbrains.exposed.dao.IntEntity import org.jetbrains.exposed.dao.IntEntity
import org.jetbrains.exposed.dao.IntEntityClass import org.jetbrains.exposed.dao.IntEntityClass
import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.EntityID
class MangaEntity(id: EntityID<Int>) : IntEntity(id) { class MangaEntity(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<MangaEntity>(MangasTable) companion object : IntEntityClass<MangaEntity>(MangaTable)
var url by MangasTable.url var url by MangaTable.url
var title by MangasTable.title var title by MangaTable.title
var initialized by MangasTable.initialized var initialized by MangaTable.initialized
var artist by MangasTable.artist var artist by MangaTable.artist
var author by MangasTable.author var author by MangaTable.author
var description by MangasTable.description var description by MangaTable.description
var genre by MangasTable.genre var genre by MangaTable.genre
var status by MangasTable.status var status by MangaTable.status
var thumbnail_url by MangasTable.thumbnail_url var thumbnail_url by MangaTable.thumbnail_url
var sourceReference by MangaEntity referencedOn MangasTable.sourceReference var sourceReference by MangaEntity referencedOn MangaTable.sourceReference
} }

View File

@ -1,16 +1,16 @@
package ir.armor.tachidesk.database.entity package ir.armor.tachidesk.database.entity
import ir.armor.tachidesk.database.table.SourcesTable import ir.armor.tachidesk.database.table.SourceTable
import org.jetbrains.exposed.dao.* import org.jetbrains.exposed.dao.*
import org.jetbrains.exposed.dao.id.EntityID import org.jetbrains.exposed.dao.id.EntityID
class SourceEntity(id: EntityID<Long>) : LongEntity(id) { class SourceEntity(id: EntityID<Long>) : LongEntity(id) {
companion object : EntityClass<Long, SourceEntity>(SourcesTable, null) companion object : EntityClass<Long, SourceEntity>(SourceTable, null)
var sourceId by SourcesTable.id var sourceId by SourceTable.id
var name by SourcesTable.name var name by SourceTable.name
var lang by SourcesTable.lang var lang by SourceTable.lang
var extension by ExtensionEntity referencedOn SourcesTable.extension var extension by ExtensionEntity referencedOn SourceTable.extension
var partOfFactorySource by SourcesTable.partOfFactorySource var partOfFactorySource by SourceTable.partOfFactorySource
var positionInFactorySource by SourcesTable.positionInFactorySource var positionInFactorySource by SourceTable.positionInFactorySource
} }

View File

@ -2,7 +2,7 @@ package ir.armor.tachidesk.database.table
import org.jetbrains.exposed.dao.id.IntIdTable import org.jetbrains.exposed.dao.id.IntIdTable
object MangasTable : IntIdTable() { object MangaTable : IntIdTable() {
val url = varchar("url", 2048) val url = varchar("url", 2048)
val title = varchar("title", 512) val title = varchar("title", 512)
val initialized = bool("initialized").default(false) val initialized = bool("initialized").default(false)
@ -15,7 +15,7 @@ object MangasTable : IntIdTable() {
val thumbnail_url = varchar("thumbnail_url", 2048).nullable() val thumbnail_url = varchar("thumbnail_url", 2048).nullable()
// source is used by some ancestor of IntIdTable // source is used by some ancestor of IntIdTable
val sourceReference = reference("source", SourcesTable) val sourceReference = reference("source", SourceTable)
} }
enum class MangaStatus(val status: Int) { enum class MangaStatus(val status: Int) {

View File

@ -2,7 +2,7 @@ package ir.armor.tachidesk.database.table
import org.jetbrains.exposed.dao.id.IdTable import org.jetbrains.exposed.dao.id.IdTable
object SourcesTable : IdTable<Long>() { object SourceTable : IdTable<Long>() {
override val id = long("id").entityId() override val id = long("id").entityId()
val name= varchar("name", 128) val name= varchar("name", 128)
val lang = varchar("lang", 10) val lang = varchar("lang", 10)

View File

@ -8,18 +8,15 @@ import eu.kanade.tachiyomi.source.online.HttpSource
import ir.armor.tachidesk.APKExtractor import ir.armor.tachidesk.APKExtractor
import ir.armor.tachidesk.Config import ir.armor.tachidesk.Config
import ir.armor.tachidesk.database.table.ExtensionsTable import ir.armor.tachidesk.database.table.ExtensionsTable
import ir.armor.tachidesk.database.table.SourcesTable import ir.armor.tachidesk.database.table.SourceTable
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import okhttp3.Request import okhttp3.Request
import okio.buffer import okio.buffer
import okio.sink import okio.sink
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.update import org.jetbrains.exposed.sql.update
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.io.File import java.io.File
import java.net.URL import java.net.URL
@ -71,8 +68,8 @@ fun installAPK(apkName: String): Int {
// name = httpSource.name // name = httpSource.name
// this.extension = ExtensionEntity.find { ExtensionsTable.name eq extension.name }.first().id // this.extension = ExtensionEntity.find { ExtensionsTable.name eq extension.name }.first().id
// } // }
if (SourcesTable.select { SourcesTable.id eq httpSource.id }.count() == 0L) { if (SourceTable.select { SourceTable.id eq httpSource.id }.count() == 0L) {
SourcesTable.insert { SourceTable.insert {
it[this.id] = httpSource.id it[this.id] = httpSource.id
it[name] = httpSource.name it[name] = httpSource.name
it[this.lang] = httpSource.lang it[this.lang] = httpSource.lang
@ -89,8 +86,8 @@ fun installAPK(apkName: String): Int {
transaction { transaction {
sourceFactory.createSources().forEachIndexed { index, source -> sourceFactory.createSources().forEachIndexed { index, source ->
val httpSource = source as HttpSource val httpSource = source as HttpSource
if (SourcesTable.select { SourcesTable.id eq httpSource.id }.count() == 0L) { if (SourceTable.select { SourceTable.id eq httpSource.id }.count() == 0L) {
SourcesTable.insert { SourceTable.insert {
it[this.id] = httpSource.id it[this.id] = httpSource.id
it[name] = httpSource.name it[name] = httpSource.name
it[this.lang] = httpSource.lang it[this.lang] = httpSource.lang

View File

@ -3,13 +3,11 @@ package ir.armor.tachidesk.util
import eu.kanade.tachiyomi.source.SourceFactory import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.HttpSource
import ir.armor.tachidesk.Config import ir.armor.tachidesk.Config
import ir.armor.tachidesk.Main
import ir.armor.tachidesk.database.dataclass.SourceDataClass import ir.armor.tachidesk.database.dataclass.SourceDataClass
import ir.armor.tachidesk.database.entity.ExtensionEntity import ir.armor.tachidesk.database.entity.ExtensionEntity
import ir.armor.tachidesk.database.entity.SourceEntity import ir.armor.tachidesk.database.entity.SourceEntity
import ir.armor.tachidesk.database.table.ExtensionsTable import ir.armor.tachidesk.database.table.ExtensionsTable
import ir.armor.tachidesk.database.table.SourcesTable import ir.armor.tachidesk.database.table.SourceTable
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction import org.jetbrains.exposed.sql.transactions.transaction
@ -71,13 +69,13 @@ fun getHttpSource(sourceId: Long): HttpSource {
fun getSourceList(): List<SourceDataClass> { fun getSourceList(): List<SourceDataClass> {
return transaction { return transaction {
return@transaction SourcesTable.selectAll().map { return@transaction SourceTable.selectAll().map {
SourceDataClass( SourceDataClass(
it[SourcesTable.id].value.toString(), it[SourceTable.id].value.toString(),
it[SourcesTable.name], it[SourceTable.name],
Locale(it[SourcesTable.lang]).getDisplayLanguage(Locale(it[SourcesTable.lang])), Locale(it[SourceTable.lang]).getDisplayLanguage(Locale(it[SourceTable.lang])),
ExtensionsTable.select { ExtensionsTable.id eq it[SourcesTable.extension] }.first()[ExtensionsTable.iconUrl], ExtensionsTable.select { ExtensionsTable.id eq it[SourceTable.extension] }.first()[ExtensionsTable.iconUrl],
getHttpSource(it[SourcesTable.id].value).supportsLatest getHttpSource(it[SourceTable.id].value).supportsLatest
) )
} }
} }