From 9a61f58043b2bc2f25dadb5319886ed680685394 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Fri, 22 Jan 2021 12:34:03 +0330 Subject: [PATCH] add kotlinter --- server/build.gradle.kts | 8 +++ .../main/kotlin/eu/kanade/tachiyomi/App.kt | 6 +-- .../kotlin/eu/kanade/tachiyomi/AppModule.kt | 25 ++++----- .../extension/api/ExtensionGithubApi.kt | 44 +++++++-------- .../extension/api/ExtensionGithubService.kt | 2 +- .../extension/util/ExtensionLoader.kt | 32 +++++------ .../network/CloudflareInterceptor.kt | 41 ++++++-------- .../kanade/tachiyomi/network/NetworkHelper.kt | 17 +++--- .../tachiyomi/network/OkHttpExtensions.kt | 14 ++--- .../tachiyomi/source/ConfigurableSource.kt | 2 +- .../eu/kanade/tachiyomi/source/Source.kt | 12 ++--- .../kanade/tachiyomi/source/SourceManager.kt | 4 +- .../eu/kanade/tachiyomi/source/model/Page.kt | 2 +- .../kanade/tachiyomi/source/model/SChapter.kt | 2 +- .../tachiyomi/source/online/HttpSource.kt | 2 +- .../main/kotlin/ir/armor/tachidesk/Config.kt | 4 +- .../main/kotlin/ir/armor/tachidesk/Main.kt | 29 +++++----- .../ir/armor/tachidesk/database/DBMangaer.kt | 2 +- .../database/dataclass/ChapterDataClass.kt | 16 +++--- .../database/dataclass/ExtensionDataClass.kt | 22 ++++---- .../database/dataclass/MangaDataClass.kt | 24 ++++----- .../database/dataclass/PageDataClass.kt | 6 +-- .../database/dataclass/SourceDataClass.kt | 12 ++--- .../database/entity/ExtensionEntity.kt | 2 +- .../tachidesk/database/entity/MangaEntity.kt | 2 +- .../tachidesk/database/entity/SourceEntity.kt | 5 +- .../tachidesk/database/table/ChapterTable.kt | 5 +- .../database/table/ExtensionTable.kt | 3 +- .../tachidesk/database/table/MangaTable.kt | 2 +- .../tachidesk/database/table/SourceTable.kt | 4 +- .../kotlin/ir/armor/tachidesk/util/APK.kt | 7 +-- .../kotlin/ir/armor/tachidesk/util/Chapter.kt | 40 +++++++------- .../ir/armor/tachidesk/util/ExtensionsList.kt | 21 ++++---- .../kotlin/ir/armor/tachidesk/util/Manga.kt | 54 +++++++++---------- .../ir/armor/tachidesk/util/MangaList.kt | 26 +++++---- .../kotlin/ir/armor/tachidesk/util/Search.kt | 16 +++--- .../ir/armor/tachidesk/util/SourceList.kt | 34 ++++++------ .../kotlin/ir/armor/tachidesk/util/Util.kt | 3 +- 38 files changed, 262 insertions(+), 290 deletions(-) diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 0ad6a67..629c925 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -5,6 +5,7 @@ plugins { // id("org.jetbrains.kotlin.jvm") version "1.4.21" application id("com.github.johnrengelman.shadow") version "6.1.0" + id("org.jmailen.kotlinter") version "3.3.0" } val TachideskVersion = "v0.0.2" @@ -139,9 +140,16 @@ tasks { tasks.withType { destinationDir = File("$rootDir/server/build") + dependsOn("lintKotlin") } tasks.named("processResources") { dependsOn(":webUI:copyBuild") } +tasks.named("run") { + dependsOn("formatKotlin", "lintKotlin") +} + + + diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt index e10c476..8366e24 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/App.kt @@ -2,9 +2,9 @@ package eu.kanade.tachiyomi import android.app.Application import android.content.Context -//import android.content.res.Configuration -//import android.support.multidex.MultiDex -//import timber.log.Timber +// import android.content.res.Configuration +// import android.support.multidex.MultiDex +// import timber.log.Timber import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.InjektScope import uy.kohesive.injekt.registry.default.DefaultRegistrar diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt index 3c86f62..ffeacbd 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/AppModule.kt @@ -2,19 +2,22 @@ package eu.kanade.tachiyomi import android.app.Application import com.google.gson.Gson -//import eu.kanade.tachiyomi.data.cache.ChapterCache -//import eu.kanade.tachiyomi.data.cache.CoverCache -//import eu.kanade.tachiyomi.data.database.DatabaseHelper -//import eu.kanade.tachiyomi.data.download.DownloadManager -//import eu.kanade.tachiyomi.data.preference.PreferencesHelper -//import eu.kanade.tachiyomi.data.sync.LibrarySyncManager -//import eu.kanade.tachiyomi.data.track.TrackManager -//import eu.kanade.tachiyomi.extension.ExtensionManager +// import eu.kanade.tachiyomi.data.cache.ChapterCache +// import eu.kanade.tachiyomi.data.cache.CoverCache +// import eu.kanade.tachiyomi.data.database.DatabaseHelper +// import eu.kanade.tachiyomi.data.download.DownloadManager +// import eu.kanade.tachiyomi.data.preference.PreferencesHelper +// import eu.kanade.tachiyomi.data.sync.LibrarySyncManager +// import eu.kanade.tachiyomi.data.track.TrackManager +// import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.network.NetworkHelper -import eu.kanade.tachiyomi.source.SourceManager import rx.Observable import rx.schedulers.Schedulers -import uy.kohesive.injekt.api.* +import uy.kohesive.injekt.api.InjektModule +import uy.kohesive.injekt.api.InjektRegistrar +import uy.kohesive.injekt.api.addSingleton +import uy.kohesive.injekt.api.addSingletonFactory +import uy.kohesive.injekt.api.get class AppModule(val app: Application) : InjektModule { @@ -56,11 +59,9 @@ class AppModule(val app: Application) : InjektModule { } // rxAsync { get() } - } private fun rxAsync(block: () -> Unit) { Observable.fromCallable { block() }.subscribeOn(Schedulers.computation()).subscribe() } - } 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 91a572c..a6c3b1f 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,17 +1,17 @@ package eu.kanade.tachiyomi.extension.api -//import android.content.Context -//import eu.kanade.tachiyomi.data.preference.PreferencesHelper +// import android.content.Context +// import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.extension.model.Extension import eu.kanade.tachiyomi.extension.util.ExtensionLoader import ir.armor.tachidesk.database.dataclass.ExtensionDataClass -//import kotlinx.coroutines.Dispatchers -//import kotlinx.coroutines.withContext +// import kotlinx.coroutines.Dispatchers +// import kotlinx.coroutines.withContext import kotlinx.serialization.json.JsonArray import kotlinx.serialization.json.int import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive -//import uy.kohesive.injekt.injectLazy +// import uy.kohesive.injekt.injectLazy internal class ExtensionGithubApi { @@ -27,7 +27,7 @@ internal class ExtensionGithubApi { // suspend fun checkForUpdates(): List { // val extensions = fin dExtensions() // -//// preferences.lastExtCheck().set(Date().time) +// // preferences.lastExtCheck().set(Date().time) // // val installedExtensions = ExtensionLoader.loadExtensions(context) // .filterIsInstance() @@ -49,23 +49,23 @@ internal class ExtensionGithubApi { private fun parseResponse(json: JsonArray): List { return json - .filter { element -> - val versionName = element.jsonObject["version"]!!.jsonPrimitive.content - val libVersion = versionName.substringBeforeLast('.').toDouble() - libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX - } - .map { element -> - val name = element.jsonObject["name"]!!.jsonPrimitive.content.substringAfter("Tachiyomi: ") - val pkgName = element.jsonObject["pkg"]!!.jsonPrimitive.content - val apkName = element.jsonObject["apk"]!!.jsonPrimitive.content - val versionName = element.jsonObject["version"]!!.jsonPrimitive.content - val versionCode = element.jsonObject["code"]!!.jsonPrimitive.int - val lang = element.jsonObject["lang"]!!.jsonPrimitive.content - val nsfw = element.jsonObject["nsfw"]!!.jsonPrimitive.int == 1 - val icon = "$REPO_URL_PREFIX/icon/${apkName.replace(".apk", ".png")}" + .filter { element -> + val versionName = element.jsonObject["version"]!!.jsonPrimitive.content + val libVersion = versionName.substringBeforeLast('.').toDouble() + libVersion >= ExtensionLoader.LIB_VERSION_MIN && libVersion <= ExtensionLoader.LIB_VERSION_MAX + } + .map { element -> + val name = element.jsonObject["name"]!!.jsonPrimitive.content.substringAfter("Tachiyomi: ") + val pkgName = element.jsonObject["pkg"]!!.jsonPrimitive.content + val apkName = element.jsonObject["apk"]!!.jsonPrimitive.content + val versionName = element.jsonObject["version"]!!.jsonPrimitive.content + val versionCode = element.jsonObject["code"]!!.jsonPrimitive.int + val lang = element.jsonObject["lang"]!!.jsonPrimitive.content + val nsfw = element.jsonObject["nsfw"]!!.jsonPrimitive.int == 1 + val icon = "$REPO_URL_PREFIX/icon/${apkName.replace(".apk", ".png")}" - Extension.Available(name, pkgName, versionName, versionCode, lang, nsfw, apkName, icon) - } + Extension.Available(name, pkgName, versionName, versionCode, lang, nsfw, apkName, icon) + } } fun getApkUrl(extension: Extension.Available): String { diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubService.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubService.kt index 678be31..73769c7 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubService.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/api/ExtensionGithubService.kt @@ -9,7 +9,7 @@ import retrofit2.Retrofit import retrofit2.http.GET import uy.kohesive.injekt.injectLazy -//import uy.kohesive.injekt.injectLazy +// import uy.kohesive.injekt.injectLazy /** * Used to get the extension repo listing from GitHub. diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt index dd384d0..92c4f68 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/extension/util/ExtensionLoader.kt @@ -1,28 +1,22 @@ package eu.kanade.tachiyomi.extension.util -//import android.annotation.SuppressLint -//import android.content.Context -//import android.content.pm.PackageInfo -//import android.content.pm.PackageManager -//import dalvik.system.PathClassLoader -import eu.kanade.tachiyomi.annoations.Nsfw -//import eu.kanade.tachiyomi.data.preference.PreferenceValues -//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.source.CatalogueSource -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory -//import eu.kanade.tachiyomi.util.lang.Hash -//import kotlinx.coroutines.async -//import kotlinx.coroutines.runBlocking -//import timber.log.Timber -//import uy.kohesive.injekt.injectLazy +// import android.annotation.SuppressLint +// import android.content.Context +// import android.content.pm.PackageInfo +// import android.content.pm.PackageManager +// import dalvik.system.PathClassLoader +// import eu.kanade.tachiyomi.data.preference.PreferenceValues +// import eu.kanade.tachiyomi.data.preference.PreferencesHelper +// import eu.kanade.tachiyomi.util.lang.Hash +// import kotlinx.coroutines.async +// import kotlinx.coroutines.runBlocking +// import timber.log.Timber +// import uy.kohesive.injekt.injectLazy /** * Class that handles the loading of the extensions installed in the system. */ -//@SuppressLint("PackageManagerGetSignatures") +// @SuppressLint("PackageManagerGetSignatures") internal object ExtensionLoader { // private val preferences: PreferencesHelper by injectLazy() diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt index 2f326a7..d52f746 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/network/CloudflareInterceptor.kt @@ -1,30 +1,23 @@ package eu.kanade.tachiyomi.network -//import android.annotation.SuppressLint -//import android.content.Context -//import android.os.Build -//import android.os.Handler -//import android.os.Looper -//import android.webkit.WebSettings -//import android.webkit.WebView -//import android.widget.Toast -//import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.source.online.HttpSource -//import eu.kanade.tachiyomi.util.lang.launchUI -//import eu.kanade.tachiyomi.util.system.WebViewClientCompat -//import eu.kanade.tachiyomi.util.system.WebViewUtil -//import eu.kanade.tachiyomi.util.system.isOutdated -//import eu.kanade.tachiyomi.util.system.setDefaultSettings -//import eu.kanade.tachiyomi.util.system.toast -import okhttp3.Cookie -import okhttp3.HttpUrl.Companion.toHttpUrl +// import android.annotation.SuppressLint +// import android.content.Context +// import android.os.Build +// import android.os.Handler +// import android.os.Looper +// import android.webkit.WebSettings +// import android.webkit.WebView +// import android.widget.Toast +// import eu.kanade.tachiyomi.R +// import eu.kanade.tachiyomi.util.lang.launchUI +// import eu.kanade.tachiyomi.util.system.WebViewClientCompat +// import eu.kanade.tachiyomi.util.system.WebViewUtil +// import eu.kanade.tachiyomi.util.system.isOutdated +// import eu.kanade.tachiyomi.util.system.setDefaultSettings +// import eu.kanade.tachiyomi.util.system.toast import okhttp3.Interceptor -import okhttp3.Request import okhttp3.Response -//import uy.kohesive.injekt.injectLazy -import java.io.IOException -import java.util.concurrent.CountDownLatch -import java.util.concurrent.TimeUnit +// import uy.kohesive.injekt.injectLazy class CloudflareInterceptor() : Interceptor { @@ -77,7 +70,7 @@ class CloudflareInterceptor() : Interceptor { // } } // -//// @SuppressLint("SetJavaScriptEnabled") +// // @SuppressLint("SetJavaScriptEnabled") // private fun resolveWithWebView(request: Request, oldCookie: Cookie?) { // // We need to lock this thread until the WebView finds the challenge solution url, because // // OkHttp doesn't support asynchronous interceptors. diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt index 224e68e..d567210 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/network/NetworkHelper.kt @@ -1,17 +1,14 @@ package eu.kanade.tachiyomi.network -//import android.content.Context -//import eu.kanade.tachiyomi.BuildConfig -//import eu.kanade.tachiyomi.data.preference.PreferencesHelper +// import android.content.Context +// import eu.kanade.tachiyomi.BuildConfig +// import eu.kanade.tachiyomi.data.preference.PreferencesHelper import android.content.Context -import okhttp3.Cache -//import okhttp3.HttpUrl.Companion.toHttpUrl +// import okhttp3.HttpUrl.Companion.toHttpUrl import okhttp3.OkHttpClient -//import okhttp3.dnsoverhttps.DnsOverHttps -//import okhttp3.logging.HttpLoggingInterceptor -//import uy.kohesive.injekt.injectLazy -import java.io.File -import java.net.InetAddress +// import okhttp3.dnsoverhttps.DnsOverHttps +// import okhttp3.logging.HttpLoggingInterceptor +// import uy.kohesive.injekt.injectLazy import java.util.concurrent.TimeUnit class NetworkHelper(context: Context) { diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt index 8038e5e..ec921eb 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/network/OkHttpExtensions.kt @@ -1,18 +1,14 @@ package eu.kanade.tachiyomi.network -//import kotlinx.coroutines.suspendCancellableCoroutine +// import kotlinx.coroutines.suspendCancellableCoroutine import okhttp3.Call -import okhttp3.Callback import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response import rx.Observable import rx.Producer import rx.Subscription -import java.io.IOException import java.util.concurrent.atomic.AtomicBoolean -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException fun Call.asObservable(): Observable { return Observable.unsafeCreate { subscriber -> @@ -52,7 +48,7 @@ fun Call.asObservable(): Observable { } // Based on https://github.com/gildor/kotlin-coroutines-okhttp -//suspend fun Call.await(assertSuccess: Boolean = false): Response { +// suspend fun Call.await(assertSuccess: Boolean = false): Response { // return suspendCancellableCoroutine { continuation -> // enqueue( // object : Callback { @@ -81,7 +77,7 @@ fun Call.asObservable(): Observable { // } // } // } -//} +// } fun Call.asObservableSuccess(): Observable { return asObservable().doOnNext { response -> @@ -92,7 +88,7 @@ fun Call.asObservableSuccess(): Observable { } } -//fun OkHttpClient.newCallWithProgress(request: Request, listener: ProgressListener): Call { +// fun OkHttpClient.newCallWithProgress(request: Request, listener: ProgressListener): Call { // val progressClient = newBuilder() // .cache(null) // .addNetworkInterceptor { chain -> @@ -104,7 +100,7 @@ fun Call.asObservableSuccess(): Observable { // .build() // // return progressClient.newCall(request) -//} +// } fun OkHttpClient.newCallWithProgress(request: Request, listener: ProgressListener): Call { val progressClient = newBuilder() diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt index 42a8dec..a1a2f3a 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/ConfigurableSource.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.source -//import androidx.preference.PreferenceScreen +// import androidx.preference.PreferenceScreen interface ConfigurableSource : Source { diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt index 1f5b789..2c01643 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/Source.kt @@ -1,13 +1,13 @@ package eu.kanade.tachiyomi.source -//import android.graphics.drawable.Drawable -//import eu.kanade.tachiyomi.extension.ExtensionManager +// import android.graphics.drawable.Drawable +// import eu.kanade.tachiyomi.extension.ExtensionManager import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import rx.Observable -//import uy.kohesive.injekt.Injekt -//import uy.kohesive.injekt.api.get +// import uy.kohesive.injekt.Injekt +// import uy.kohesive.injekt.api.get /** * A basic interface for creating a source. It could be an online source, a local source, etc... @@ -46,6 +46,6 @@ interface Source { fun fetchPageList(chapter: SChapter): Observable> } -//fun Source.icon(): Drawable? = Injekt.get().getAppIconForSource(this) +// fun Source.icon(): Drawable? = Injekt.get().getAppIconForSource(this) -//fun Source.getPreferenceKey(): String = "source_$id" +// fun Source.getPreferenceKey(): String = "source_$id" diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt index 158bb08..177969f 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/SourceManager.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.source -//import android.content.Context -//import eu.kanade.tachiyomi.R +// import android.content.Context +// import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt index 2590bd0..22436bf 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/Page.kt @@ -9,7 +9,7 @@ open class Page( val url: String = "", var imageUrl: String? = null, @Transient var uri: Uri? = null // Deprecated but can't be deleted due to extensions -): ProgressListener { +) : ProgressListener { val number: Int get() = index + 1 diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt index 43ad954..f53bbe8 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/model/SChapter.kt @@ -12,7 +12,7 @@ interface SChapter : Serializable { var chapter_number: Float - var scanlator: String? + var scanlator: String? fun copyFrom(other: SChapter) { name = other.name diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt index b7c8175..a613f13 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -16,7 +16,7 @@ import okhttp3.Request import okhttp3.Response import rx.Observable import uy.kohesive.injekt.injectLazy -//import uy.kohesive.injekt.injectLazy +// import uy.kohesive.injekt.injectLazy import java.net.URI import java.net.URISyntaxException import java.security.MessageDigest diff --git a/server/src/main/kotlin/ir/armor/tachidesk/Config.kt b/server/src/main/kotlin/ir/armor/tachidesk/Config.kt index c3822e5..0824286 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/Config.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/Config.kt @@ -3,6 +3,6 @@ package ir.armor.tachidesk import net.harawata.appdirs.AppDirsFactory object Config { - val dataRoot = AppDirsFactory.getInstance().getUserDataDir("Tachidesk",null, null) + val dataRoot = AppDirsFactory.getInstance().getUserDataDir("Tachidesk", null, null) val extensionsRoot = "$dataRoot/extensions" -} \ No newline at end of file +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/Main.kt b/server/src/main/kotlin/ir/armor/tachidesk/Main.kt index 21c6993..f6f4dbf 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/Main.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/Main.kt @@ -2,7 +2,17 @@ package ir.armor.tachidesk import eu.kanade.tachiyomi.App import io.javalin.Javalin -import ir.armor.tachidesk.util.* +import ir.armor.tachidesk.util.applicationSetup +import ir.armor.tachidesk.util.getChapterList +import ir.armor.tachidesk.util.getExtensionList +import ir.armor.tachidesk.util.getManga +import ir.armor.tachidesk.util.getMangaList +import ir.armor.tachidesk.util.getPages +import ir.armor.tachidesk.util.getSourceList +import ir.armor.tachidesk.util.installAPK +import ir.armor.tachidesk.util.sourceFilters +import ir.armor.tachidesk.util.sourceGlobalSearch +import ir.armor.tachidesk.util.sourceSearch import org.kodein.di.DI import org.kodein.di.conf.global import xyz.nulldev.androidcompat.AndroidCompat @@ -28,26 +38,23 @@ class Main { registerConfigModules() - //Load config API + // Load config API DI.global.addImport(ConfigKodeinModule().create()) - //Load Android compatibility dependencies + // Load Android compatibility dependencies AndroidCompatInitializer().init() // start app androidCompat.startApp(App()) - val app = Javalin.create { config -> try { this::class.java.classLoader.getResource("/react/index.html") config.addStaticFiles("/react") - config.addSinglePageRoot("/","/react/index.html") + config.addSinglePageRoot("/", "/react/index.html") } catch (e: RuntimeException) { println("Warning: react build files are missing.") } }.start(4567) - - app.before() { ctx -> // allow the client which is running on another port ctx.header("Access-Control-Allow-Origin", "*") @@ -57,12 +64,11 @@ class Main { ctx.json(getExtensionList()) } - app.get("/api/v1/extension/install/:apkName") { ctx -> val apkName = ctx.pathParam("apkName") println(apkName) ctx.status( - installAPK(apkName) + installAPK(apkName) ) } app.get("/api/v1/source/list") { ctx -> @@ -114,11 +120,6 @@ class Main { val sourceId = ctx.pathParam("sourceId").toLong() ctx.json(sourceFilters(sourceId)) } - - - - } } } - 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 1a83571..429d654 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/DBMangaer.kt @@ -25,4 +25,4 @@ fun makeDataBaseTables() { SchemaUtils.create(MangaTable) SchemaUtils.create(ChapterTable) } -} \ No newline at end of file +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ChapterDataClass.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ChapterDataClass.kt index 7ff499a..972a1f0 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ChapterDataClass.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ChapterDataClass.kt @@ -1,11 +1,11 @@ package ir.armor.tachidesk.database.dataclass data class ChapterDataClass( - val id: Int, - val url: String, - val name: String, - val date_upload: Long, - val chapter_number: Float, - val scanlator: String?, - val mangaId: Int, -) \ No newline at end of file + val id: Int, + val url: String, + val name: String, + val date_upload: Long, + val chapter_number: Float, + val scanlator: String?, + val mangaId: Int, +) 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 index 0855ce5..70c9014 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/ExtensionDataClass.kt @@ -1,14 +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 + 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, +) diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/MangaDataClass.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/MangaDataClass.kt index 47df1f4..2d921c6 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/MangaDataClass.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/MangaDataClass.kt @@ -3,18 +3,18 @@ package ir.armor.tachidesk.database.dataclass import ir.armor.tachidesk.database.table.MangaStatus data class MangaDataClass( - val id: Int, - val sourceId: Long, + val id: Int, + val sourceId: Long, - val url: String, - val title: String, - val thumbnail_url: String? = null, + val url: String, + val title: String, + val thumbnail_url: String? = null, - val initialized: Boolean = false, + val initialized: Boolean = false, - val artist: String? = null, - val author: String? = null, - val description: String? = null, - val genre: String? = null, - val status: String = MangaStatus.UNKNOWN.name -) \ No newline at end of file + val artist: String? = null, + val author: String? = null, + val description: String? = null, + val genre: String? = null, + val status: String = MangaStatus.UNKNOWN.name +) diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/PageDataClass.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/PageDataClass.kt index a7ce55c..d799c38 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/PageDataClass.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/PageDataClass.kt @@ -1,6 +1,6 @@ package ir.armor.tachidesk.database.dataclass data class PageDataClass( - val index: Int, - var imageUrl: String, -) \ No newline at end of file + val index: Int, + var imageUrl: String, +) 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 index 96f7ff9..740d689 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/dataclass/SourceDataClass.kt @@ -1,9 +1,9 @@ package ir.armor.tachidesk.database.dataclass data class SourceDataClass( - val id: String, - val name: String, - val lang: String, - val iconUrl: String, - val supportsLatest: Boolean -) \ No newline at end of file + val id: String, + val name: String, + val lang: String, + val iconUrl: String, + val supportsLatest: Boolean +) 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 index 8ce02e2..6c9e856 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/ExtensionEntity.kt @@ -18,4 +18,4 @@ class ExtensionEntity(id: EntityID) : IntEntity(id) { 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/MangaEntity.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/MangaEntity.kt index 2124132..f0d6b46 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/entity/MangaEntity.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/MangaEntity.kt @@ -20,4 +20,4 @@ class MangaEntity(id: EntityID) : IntEntity(id) { var thumbnail_url by MangaTable.thumbnail_url var sourceReference by MangaEntity referencedOn MangaTable.sourceReference -} \ 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 index 6bf6658..6f0cbc6 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/entity/SourceEntity.kt @@ -1,7 +1,8 @@ package ir.armor.tachidesk.database.entity import ir.armor.tachidesk.database.table.SourceTable -import org.jetbrains.exposed.dao.* +import org.jetbrains.exposed.dao.EntityClass +import org.jetbrains.exposed.dao.LongEntity import org.jetbrains.exposed.dao.id.EntityID class SourceEntity(id: EntityID) : LongEntity(id) { @@ -13,4 +14,4 @@ class SourceEntity(id: EntityID) : LongEntity(id) { var extension by ExtensionEntity referencedOn SourceTable.extension var partOfFactorySource by SourceTable.partOfFactorySource var positionInFactorySource by SourceTable.positionInFactorySource -} \ No newline at end of file +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/table/ChapterTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/table/ChapterTable.kt index d94fdf0..d0599c0 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/table/ChapterTable.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/ChapterTable.kt @@ -1,6 +1,5 @@ package ir.armor.tachidesk.database.table -import eu.kanade.tachiyomi.source.model.SManga import org.jetbrains.exposed.dao.id.IntIdTable object ChapterTable : IntIdTable() { @@ -8,7 +7,7 @@ object ChapterTable : IntIdTable() { val name = varchar("name", 512) val date_upload = long("date_upload").default(0) val chapter_number = float("chapter_number").default(-1f) - val scanlator = varchar("scanlator",128).nullable() + val scanlator = varchar("scanlator", 128).nullable() val manga = reference("manga", MangaTable) -} \ No newline at end of file +} 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 index f37d323..1c32152 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/ExtensionTable.kt @@ -2,7 +2,6 @@ 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) @@ -15,4 +14,4 @@ object ExtensionsTable : IntIdTable() { 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/MangaTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/table/MangaTable.kt index 6c4a3da..40f261f 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/table/MangaTable.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/MangaTable.kt @@ -30,4 +30,4 @@ enum class MangaStatus(val status: Int) { companion object { fun valueOf(value: Int): MangaStatus = values().find { it.status == value } ?: UNKNOWN } -} \ No newline at end of file +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourceTable.kt b/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourceTable.kt index fe56431..125a617 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourceTable.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/database/table/SourceTable.kt @@ -4,9 +4,9 @@ import org.jetbrains.exposed.dao.id.IdTable object SourceTable : IdTable() { override val id = long("id").entityId() - val name= varchar("name", 128) + val name = varchar("name", 128) val lang = varchar("lang", 10) 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 +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/APK.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/APK.kt index 10157eb..a0793e5 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/APK.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/APK.kt @@ -41,7 +41,6 @@ fun installAPK(apkName: String): Int { // download apk file downloadAPKFile(apkToDownload, apkFilePath) - val className: String = APKExtractor.extract_dex_and_read_className(apkFilePath, dexFilePath) println(className) // dex -> jar @@ -60,7 +59,7 @@ fun installAPK(apkName: String): Int { return@transaction ExtensionsTable.select { ExtensionsTable.name eq extensionRecord.name }.first()[ExtensionsTable.id] } - if (instance is HttpSource) {// single source + if (instance is HttpSource) { // single source val httpSource = instance as HttpSource transaction { // SourceEntity.new { @@ -80,7 +79,6 @@ fun installAPK(apkName: String): Int { // println(httpSource.name) // println() } - } else { // multi source val sourceFactory = instance as SourceFactory transaction { @@ -110,7 +108,6 @@ fun installAPK(apkName: String): Int { it[classFQName] = className } } - } return 201 // we downloaded successfully } else { @@ -122,7 +119,7 @@ val networkHelper: NetworkHelper by injectLazy() private fun downloadAPKFile(url: String, apkPath: String) { val request = Request.Builder().url(url).build() - val response = networkHelper.client.newCall(request).execute() + val response = networkHelper.client.newCall(request).execute() val downloadedFile = File(apkPath) val sink = downloadedFile.sink().buffer() diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/Chapter.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/Chapter.kt index cd0414b..65eb009 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/Chapter.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/Chapter.kt @@ -6,23 +6,21 @@ import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import ir.armor.tachidesk.database.dataclass.ChapterDataClass import ir.armor.tachidesk.database.dataclass.PageDataClass -import ir.armor.tachidesk.database.entity.MangaEntity import ir.armor.tachidesk.database.table.ChapterTable import ir.armor.tachidesk.database.table.MangaTable import org.jetbrains.exposed.sql.insertAndGetId import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.transactions.transaction - fun getChapterList(mangaId: Int): List { val mangaDetails = getManga(mangaId) val source = getHttpSource(mangaDetails.sourceId) val chapterList = source.fetchChapterList( - SManga.create().apply { - title = mangaDetails.title - url = mangaDetails.url - } + SManga.create().apply { + title = mangaDetails.title + url = mangaDetails.url + } ).toBlocking().first() return transaction { @@ -41,16 +39,15 @@ fun getChapterList(mangaId: Int): List { } } - return@transaction chapterList.map { ChapterDataClass( - ChapterTable.select { ChapterTable.url eq it.url }.firstOrNull()!![ChapterTable.id].value, - it.url, - it.name, - it.date_upload, - it.chapter_number, - it.scanlator, - mangaId + ChapterTable.select { ChapterTable.url eq it.url }.firstOrNull()!![ChapterTable.id].value, + it.url, + it.name, + it.date_upload, + it.chapter_number, + it.scanlator, + mangaId ) } } @@ -64,24 +61,23 @@ fun getPages(chapterId: Int, mangaId: Int): List { val source = getHttpSource(mangaEntry[MangaTable.sourceReference].value) val pagesList = source.fetchPageList( - SChapter.create().apply { - url = chapterEntry[ChapterTable.url] - name = chapterEntry[ChapterTable.name] - } + SChapter.create().apply { + url = chapterEntry[ChapterTable.url] + name = chapterEntry[ChapterTable.name] + } ).toBlocking().first() return@transaction pagesList.map { PageDataClass( - it.index, - getTrueImageUrl(it,source) + it.index, + getTrueImageUrl(it, source) ) } } - } fun getTrueImageUrl(page: Page, source: HttpSource): String { - return if ( page.imageUrl == null){ + return if (page.imageUrl == null) { source.fetchImageUrl(page).toBlocking().first()!! } else page.imageUrl!! } diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/ExtensionsList.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/ExtensionsList.kt index e91bfd4..41f9077 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/ExtensionsList.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/ExtensionsList.kt @@ -67,18 +67,17 @@ fun getExtensionList(offline: Boolean = false): List { return transaction { return@transaction ExtensionsTable.selectAll().map { ExtensionDataClass( - it[ExtensionsTable.name], - it[ExtensionsTable.pkgName], - it[ExtensionsTable.versionName], - it[ExtensionsTable.versionCode], - it[ExtensionsTable.lang], - it[ExtensionsTable.isNsfw], - it[ExtensionsTable.apkName], - it[ExtensionsTable.iconUrl], - it[ExtensionsTable.installed], - it[ExtensionsTable.classFQName] + it[ExtensionsTable.name], + it[ExtensionsTable.pkgName], + it[ExtensionsTable.versionName], + it[ExtensionsTable.versionCode], + it[ExtensionsTable.lang], + it[ExtensionsTable.isNsfw], + it[ExtensionsTable.apkName], + it[ExtensionsTable.iconUrl], + it[ExtensionsTable.installed], + it[ExtensionsTable.classFQName] ) } - } } diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/Manga.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/Manga.kt index 623ce61..4b7fa44 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/Manga.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/Manga.kt @@ -14,28 +14,28 @@ fun getManga(mangaId: Int): MangaDataClass { return@transaction if (mangaEntry[MangaTable.initialized]) { MangaDataClass( - mangaId, - mangaEntry[MangaTable.sourceReference].value, + mangaId, + mangaEntry[MangaTable.sourceReference].value, - mangaEntry[MangaTable.url], - mangaEntry[MangaTable.title], - mangaEntry[MangaTable.thumbnail_url], + mangaEntry[MangaTable.url], + mangaEntry[MangaTable.title], + mangaEntry[MangaTable.thumbnail_url], - true, + true, - mangaEntry[MangaTable.artist], - mangaEntry[MangaTable.author], - mangaEntry[MangaTable.description], - mangaEntry[MangaTable.genre], - MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, + mangaEntry[MangaTable.artist], + mangaEntry[MangaTable.author], + mangaEntry[MangaTable.description], + mangaEntry[MangaTable.genre], + MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, ) } else { // initialize manga val source = getHttpSource(mangaEntry[MangaTable.sourceReference].value) val fetchedManga = source.fetchMangaDetails( - SManga.create().apply { - url = mangaEntry[MangaTable.url] - title = mangaEntry[MangaTable.title] - } + SManga.create().apply { + url = mangaEntry[MangaTable.url] + title = mangaEntry[MangaTable.title] + } ).toBlocking().first() // update database @@ -56,23 +56,21 @@ fun getManga(mangaId: Int): MangaDataClass { mangaEntry = MangaTable.select { MangaTable.id eq mangaId }.firstOrNull()!! MangaDataClass( - mangaId, - mangaEntry[MangaTable.sourceReference].value, + mangaId, + mangaEntry[MangaTable.sourceReference].value, + mangaEntry[MangaTable.url], + mangaEntry[MangaTable.title], + mangaEntry[MangaTable.thumbnail_url], - mangaEntry[MangaTable.url], - mangaEntry[MangaTable.title], - mangaEntry[MangaTable.thumbnail_url], + true, - true, - - mangaEntry[MangaTable.artist], - mangaEntry[MangaTable.author], - mangaEntry[MangaTable.description], - mangaEntry[MangaTable.genre], - MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, + mangaEntry[MangaTable.artist], + mangaEntry[MangaTable.author], + mangaEntry[MangaTable.description], + mangaEntry[MangaTable.genre], + MangaStatus.valueOf(mangaEntry[MangaTable.status]).name, ) } } } - diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/MangaList.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/MangaList.kt index 542c4f0..f7f072e 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/MangaList.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/MangaList.kt @@ -3,8 +3,6 @@ package ir.armor.tachidesk.util import ir.armor.tachidesk.database.dataclass.MangaDataClass import ir.armor.tachidesk.database.table.MangaStatus import ir.armor.tachidesk.database.table.MangaTable -import ir.armor.tachidesk.database.table.SourceTable -import org.jetbrains.exposed.sql.insert import org.jetbrains.exposed.sql.insertAndGetId import org.jetbrains.exposed.sql.select import org.jetbrains.exposed.sql.transactions.transaction @@ -41,21 +39,21 @@ fun getMangaList(sourceId: Long, pageNum: Int = 1, popular: Boolean): List { +// private fun FilterList.toItems(): List { // return mapNotNull { filter -> // when (filter) { // is Filter.Header -> FilterWrapper("Header",filter) @@ -56,4 +52,4 @@ data class FilterWrapper( // } // } // } -//} \ No newline at end of file +// } diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/SourceList.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/SourceList.kt index 91b2766..d63598e 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/SourceList.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/SourceList.kt @@ -13,7 +13,7 @@ import org.jetbrains.exposed.sql.selectAll import org.jetbrains.exposed.sql.transactions.transaction import java.net.URL import java.net.URLClassLoader -import java.util.* +import java.util.Locale private val sourceCache = mutableListOf>() private val extensionCache = mutableListOf>() @@ -39,16 +39,16 @@ fun getHttpSource(sourceId: Long): HttpSource { val cachedExtensionPair = extensionCache.firstOrNull { it.first == jarPath } var usedCached = false val instance = - if (cachedExtensionPair != null) { - usedCached = true - println("Used cached Extension") - cachedExtensionPair.second - } else { - println("No Extension cache") - val child = URLClassLoader(arrayOf(URL("file:$jarPath")), this::class.java.classLoader) - val classToLoad = Class.forName(className, true, child) - classToLoad.newInstance() - } + if (cachedExtensionPair != null) { + usedCached = true + println("Used cached Extension") + cachedExtensionPair.second + } else { + println("No Extension cache") + val child = URLClassLoader(arrayOf(URL("file:$jarPath")), this::class.java.classLoader) + val classToLoad = Class.forName(className, true, child) + classToLoad.newInstance() + } if (sourceRecord.partOfFactorySource) { return@transaction if (usedCached) { (instance as List)[sourceRecord.positionInFactorySource!!] @@ -71,12 +71,12 @@ fun getSourceList(): List { return transaction { return@transaction SourceTable.selectAll().map { SourceDataClass( - it[SourceTable.id].value.toString(), - it[SourceTable.name], - Locale(it[SourceTable.lang]).getDisplayLanguage(Locale(it[SourceTable.lang])), - ExtensionsTable.select { ExtensionsTable.id eq it[SourceTable.extension] }.first()[ExtensionsTable.iconUrl], - getHttpSource(it[SourceTable.id].value).supportsLatest + it[SourceTable.id].value.toString(), + it[SourceTable.name], + Locale(it[SourceTable.lang]).getDisplayLanguage(Locale(it[SourceTable.lang])), + ExtensionsTable.select { ExtensionsTable.id eq it[SourceTable.extension] }.first()[ExtensionsTable.iconUrl], + getHttpSource(it[SourceTable.id].value).supportsLatest ) } } -} \ No newline at end of file +} diff --git a/server/src/main/kotlin/ir/armor/tachidesk/util/Util.kt b/server/src/main/kotlin/ir/armor/tachidesk/util/Util.kt index 99f02d1..233d54d 100644 --- a/server/src/main/kotlin/ir/armor/tachidesk/util/Util.kt +++ b/server/src/main/kotlin/ir/armor/tachidesk/util/Util.kt @@ -9,6 +9,5 @@ fun applicationSetup() { File(Config.dataRoot).mkdirs() File(Config.extensionsRoot).mkdirs() - makeDataBaseTables() -} \ No newline at end of file +}