mirror of
https://github.com/tachiyomiorg/tachiyomi-extensions-inspector.git
synced 2025-01-26 07:15:30 +01:00
add kotlinter
This commit is contained in:
parent
b854fdeadb
commit
9a61f58043
@ -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<ShadowJar> {
|
||||
destinationDir = File("$rootDir/server/build")
|
||||
dependsOn("lintKotlin")
|
||||
}
|
||||
|
||||
tasks.named("processResources") {
|
||||
dependsOn(":webUI:copyBuild")
|
||||
}
|
||||
|
||||
tasks.named("run") {
|
||||
dependsOn("formatKotlin", "lintKotlin")
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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<DatabaseHelper>() }
|
||||
|
||||
}
|
||||
|
||||
private fun rxAsync(block: () -> Unit) {
|
||||
Observable.fromCallable { block() }.subscribeOn(Schedulers.computation()).subscribe()
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<Extension.Installed> {
|
||||
// val extensions = fin dExtensions()
|
||||
//
|
||||
//// preferences.lastExtCheck().set(Date().time)
|
||||
// // preferences.lastExtCheck().set(Date().time)
|
||||
//
|
||||
// val installedExtensions = ExtensionLoader.loadExtensions(context)
|
||||
// .filterIsInstance<LoadResult.Success>()
|
||||
|
@ -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.
|
||||
|
@ -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()
|
||||
|
@ -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.
|
||||
|
@ -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) {
|
||||
|
@ -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<Response> {
|
||||
return Observable.unsafeCreate { subscriber ->
|
||||
@ -52,7 +48,7 @@ fun Call.asObservable(): Observable<Response> {
|
||||
}
|
||||
|
||||
// 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<Response> {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
// }
|
||||
|
||||
fun Call.asObservableSuccess(): Observable<Response> {
|
||||
return asObservable().doOnNext { response ->
|
||||
@ -92,7 +88,7 @@ fun Call.asObservableSuccess(): Observable<Response> {
|
||||
}
|
||||
}
|
||||
|
||||
//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<Response> {
|
||||
// .build()
|
||||
//
|
||||
// return progressClient.newCall(request)
|
||||
//}
|
||||
// }
|
||||
|
||||
fun OkHttpClient.newCallWithProgress(request: Request, listener: ProgressListener): Call {
|
||||
val progressClient = newBuilder()
|
||||
|
@ -1,6 +1,6 @@
|
||||
package eu.kanade.tachiyomi.source
|
||||
|
||||
//import androidx.preference.PreferenceScreen
|
||||
// import androidx.preference.PreferenceScreen
|
||||
|
||||
interface ConfigurableSource : Source {
|
||||
|
||||
|
@ -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<List<Page>>
|
||||
}
|
||||
|
||||
//fun Source.icon(): Drawable? = Injekt.get<ExtensionManager>().getAppIconForSource(this)
|
||||
// fun Source.icon(): Drawable? = Injekt.get<ExtensionManager>().getAppIconForSource(this)
|
||||
|
||||
//fun Source.getPreferenceKey(): String = "source_$id"
|
||||
// fun Source.getPreferenceKey(): String = "source_$id"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
}
|
@ -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,7 +64,6 @@ class Main {
|
||||
ctx.json(getExtensionList())
|
||||
}
|
||||
|
||||
|
||||
app.get("/api/v1/extension/install/:apkName") { ctx ->
|
||||
val apkName = ctx.pathParam("apkName")
|
||||
println(apkName)
|
||||
@ -114,11 +120,6 @@ class Main {
|
||||
val sourceId = ctx.pathParam("sourceId").toLong()
|
||||
ctx.json(sourceFilters(sourceId))
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<Long>) : LongEntity(id) {
|
||||
|
@ -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)
|
||||
}
|
@ -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)
|
||||
|
@ -4,7 +4,7 @@ import org.jetbrains.exposed.dao.id.IdTable
|
||||
|
||||
object SourceTable : IdTable<Long>() {
|
||||
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)
|
||||
|
@ -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 {
|
||||
|
@ -6,14 +6,12 @@ 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<ChapterDataClass> {
|
||||
val mangaDetails = getManga(mangaId)
|
||||
val source = getHttpSource(mangaDetails.sourceId)
|
||||
@ -41,7 +39,6 @@ fun getChapterList(mangaId: Int): List<ChapterDataClass> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return@transaction chapterList.map {
|
||||
ChapterDataClass(
|
||||
ChapterTable.select { ChapterTable.url eq it.url }.firstOrNull()!![ChapterTable.id].value,
|
||||
@ -73,15 +70,14 @@ fun getPages(chapterId: Int, mangaId: Int): List<PageDataClass> {
|
||||
return@transaction pagesList.map {
|
||||
PageDataClass(
|
||||
it.index,
|
||||
getTrueImageUrl(it,source)
|
||||
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!!
|
||||
}
|
||||
|
@ -79,6 +79,5 @@ fun getExtensionList(offline: Boolean = false): List<ExtensionDataClass> {
|
||||
it[ExtensionsTable.classFQName]
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,6 @@ fun getManga(mangaId: Int): MangaDataClass {
|
||||
mangaId,
|
||||
mangaEntry[MangaTable.sourceReference].value,
|
||||
|
||||
|
||||
mangaEntry[MangaTable.url],
|
||||
mangaEntry[MangaTable.title],
|
||||
mangaEntry[MangaTable.thumbnail_url],
|
||||
@ -75,4 +74,3 @@ fun getManga(mangaId: Int): MangaDataClass {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -1,20 +1,16 @@
|
||||
package ir.armor.tachidesk.util
|
||||
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
|
||||
fun sourceFilters(sourceId: Long) {
|
||||
val source = getHttpSource(sourceId)
|
||||
//source.getFilterList().toItems()
|
||||
// source.getFilterList().toItems()
|
||||
}
|
||||
|
||||
fun sourceSearch(sourceId: Long, searchTerm: String) {
|
||||
val source = getHttpSource(sourceId)
|
||||
//source.fetchSearchManga()
|
||||
// source.fetchSearchManga()
|
||||
}
|
||||
|
||||
fun sourceGlobalSearch(searchTerm: String) {
|
||||
|
||||
}
|
||||
|
||||
data class FilterWrapper(
|
||||
@ -22,7 +18,7 @@ data class FilterWrapper(
|
||||
val filter: Any
|
||||
)
|
||||
|
||||
//private fun FilterList.toItems(): List<FilterWrapper> {
|
||||
// private fun FilterList.toItems(): List<FilterWrapper> {
|
||||
// return mapNotNull { filter ->
|
||||
// when (filter) {
|
||||
// is Filter.Header -> FilterWrapper("Header",filter)
|
||||
@ -56,4 +52,4 @@ data class FilterWrapper(
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
// }
|
||||
|
@ -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<Pair<Long, HttpSource>>()
|
||||
private val extensionCache = mutableListOf<Pair<String, Any>>()
|
||||
|
@ -9,6 +9,5 @@ fun applicationSetup() {
|
||||
File(Config.dataRoot).mkdirs()
|
||||
File(Config.extensionsRoot).mkdirs()
|
||||
|
||||
|
||||
makeDataBaseTables()
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user