allow injecting Sources

This commit is contained in:
Aria Moradi
2021-10-31 18:05:55 +03:30
parent 5fe69becf3
commit ee33acc561
5 changed files with 11 additions and 53 deletions
@@ -34,6 +34,7 @@ import org.kodein.di.DI
import org.kodein.di.conf.global
import org.kodein.di.instance
import rx.Observable
import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource.registerCatalogueSource
import suwayomi.tachidesk.manga.impl.util.storage.ImageUtil
import suwayomi.tachidesk.manga.model.table.ExtensionTable
import suwayomi.tachidesk.manga.model.table.SourceTable
@@ -89,7 +90,7 @@ class LocalSource : CatalogueSource {
}
}
fun addDbRecords() {
fun register() {
transaction {
val sourceRecord = SourceTable.select { SourceTable.id eq ID }.firstOrNull()
@@ -115,6 +116,8 @@ class LocalSource : CatalogueSource {
}
}
}
registerCatalogueSource(ID to LocalSource())
}
}
@@ -10,7 +10,6 @@ package suwayomi.tachidesk.manga.impl.util.source
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.SourceFactory
import eu.kanade.tachiyomi.source.local.LocalSource
import eu.kanade.tachiyomi.source.online.HttpSource
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
@@ -24,9 +23,7 @@ import suwayomi.tachidesk.server.ApplicationDirs
import java.util.concurrent.ConcurrentHashMap
object GetCatalogueSource {
private val sourceCache = ConcurrentHashMap<Long, CatalogueSource>(
mapOf(LocalSource.ID to LocalSource())
)
private val sourceCache = ConcurrentHashMap<Long, CatalogueSource>()
private val applicationDirs by DI.global.instance<ApplicationDirs>()
fun getCatalogueSource(sourceId: Long): CatalogueSource? {
@@ -63,6 +60,10 @@ object GetCatalogueSource {
return getCatalogueSource(sourceId) ?: StubSource(sourceId)
}
fun registerCatalogueSource(sourcePair: Pair<Long, CatalogueSource>) {
sourceCache += sourcePair
}
fun invalidateSourceCache(sourceId: Long) {
sourceCache.remove(sourceId)
}
@@ -119,7 +119,7 @@ fun applicationSetup() {
databaseUp()
LocalSource.addDbRecords()
LocalSource.register()
// create system tray
if (serverConfig.systemTrayEnabled) {