This is better.

This commit is contained in:
Aria Moradi 2021-04-04 03:37:00 +04:30
parent 7a52e19235
commit 177c971b52
6 changed files with 28 additions and 23 deletions

View File

@ -9,9 +9,10 @@ import net.harawata.appdirs.AppDirsFactory
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
fun tachideskRootDir(): String {
return System.getProperty(
"ir.armor.tachidesk.rootDir",
AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null)
)
}
val ApplicationRootDir: String
get(): String {
return System.getProperty(
"ir.armor.tachidesk.rootDir",
AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null)
)
}

View File

@ -46,7 +46,7 @@ open class ConfigManager {
//Load user config
val userConfig =
File(tachideskRootDir(), "server.conf").let {
File(ApplicationRootDir, "server.conf").let {
ConfigFactory.parseFile(it)
}

View File

@ -50,10 +50,9 @@ object Extension {
private val logger = KotlinLogging.logger {}
private val applicationDirs by DI.global.instance<ApplicationDirs>()
data class InstallableAPK(
val apkFilePath: String,
val pkgName: String
val apkFilePath: String,
val pkgName: String
)
suspend fun installExtension(pkgName: String): Int {
@ -99,8 +98,8 @@ object Extension {
val libVersion = packageInfo.versionName.substringBeforeLast('.').toDouble()
if (libVersion < LIB_VERSION_MIN || libVersion > LIB_VERSION_MAX) {
throw Exception(
"Lib version is $libVersion, while only versions " +
"$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed"
"Lib version is $libVersion, while only versions " +
"$LIB_VERSION_MIN to $LIB_VERSION_MAX are allowed"
)
}
@ -241,7 +240,7 @@ object Extension {
return getCachedImageResponse(saveDir, apkName) {
network.client.newCall(
GET(iconUrl)
GET(iconUrl)
).await()
}
}

View File

@ -20,15 +20,15 @@ import org.kodein.di.singleton
import org.slf4j.Logger
import xyz.nulldev.androidcompat.AndroidCompat
import xyz.nulldev.androidcompat.AndroidCompatInitializer
import xyz.nulldev.ts.config.ApplicationRootDir
import xyz.nulldev.ts.config.ConfigKodeinModule
import xyz.nulldev.ts.config.GlobalConfigManager
import xyz.nulldev.ts.config.tachideskRootDir
import java.io.File
private val logger = KotlinLogging.logger {}
class ApplicationDirs(
val dataRoot: String = tachideskRootDir()
val dataRoot: String = ApplicationRootDir
) {
val extensionsRoot = "$dataRoot/extensions"
val thumbnailsRoot = "$dataRoot/thumbnails"
@ -44,9 +44,11 @@ val androidCompat by lazy { AndroidCompat() }
fun applicationSetup() {
// Application dirs
val applicationDirs = ApplicationDirs()
DI.global.addImport(DI.Module("Server") {
bind<ApplicationDirs>() with singleton { applicationDirs }
})
DI.global.addImport(
DI.Module("Server") {
bind<ApplicationDirs>() with singleton { applicationDirs }
}
)
// make dirs we need
listOf(
@ -58,6 +60,7 @@ fun applicationSetup() {
File(it).mkdirs()
}
// register Tachidesk's config which is dubbed "ServerConfig"
GlobalConfigManager.registerModule(
ServerConfig.register(GlobalConfigManager.config)
)

View File

@ -75,9 +75,11 @@ class TestExtensions {
semaphore.withPermit {
logger.info { "$index - Now fetching popular manga from $source" }
try {
mangaToFetch += source to (source.fetchPopularManga(1)
.awaitSingleRepeat().mangas.firstOrNull()
?: throw Exception("Source returned no manga"))
mangaToFetch += source to (
source.fetchPopularManga(1)
.awaitSingleRepeat().mangas.firstOrNull()
?: throw Exception("Source returned no manga")
)
} catch (e: Exception) {
logger.warn { "Failed to fetch popular manga from $source: ${e.message}" }
failedToFetch += source to e