From 0ce4416f099a55074ee52c8787780cf84c3c3b0c Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Mon, 8 Feb 2021 13:37:48 -0800 Subject: [PATCH] Multisrc bugfix and genkan refactor (#5707) * themesource bugfix, refactor genkan * revert 3da46570aaabed --- CONTRIBUTING.md | 10 ++++++++++ annotations/build.gradle.kts | 7 +++++++ .../src/main/kotlin}/Nsfw.kt | 0 common-dependencies.gradle | 5 ++++- core/build.gradle.kts | 15 --------------- lib/duktape-stub/build.gradle.kts | 16 ++++++++++++++++ .../src/com/squareup/duktape/Duktape.java | 0 .../tachiyomi/multisrc/ThemeSourceGenerator.kt | 6 +++--- .../multisrc/genkan/GenkanGenerator.kt | 17 +++++++++-------- .../multisrc/genkan/GenkanOriginalGenerator.kt | 8 ++++---- settings.gradle.kts | 4 ++++ 11 files changed, 57 insertions(+), 31 deletions(-) create mode 100644 annotations/build.gradle.kts rename {core/src/eu/kanade/tachiyomi/annotations => annotations/src/main/kotlin}/Nsfw.kt (100%) create mode 100644 lib/duktape-stub/build.gradle.kts rename {core => lib/duktape-stub}/src/com/squareup/duktape/Duktape.java (100%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebe62c8fd..9023fb4ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -102,6 +102,16 @@ The extension's version name is generated automatically by concatenating `libVer Extensions rely on [extensions-lib](https://github.com/tachiyomiorg/extensions-lib), which provides some interfaces and stubs from the [app](https://github.com/tachiyomiorg/tachiyomi) for compilation purposes. The actual implementations can be found [here](https://github.com/tachiyomiorg/tachiyomi/tree/dev/app/src/main/java/eu/kanade/tachiyomi/source). Referencing the actual implementation will help with understanding extensions' call flow. +#### Duktape stub + +[`duktape-stub`](https://github.com/tachiyomiorg/tachiyomi-extensions/tree/master/lib/duktape-stub) provides stubs for using Duktape functionality without pulling in the full library. Functionality is bundled into the main Tachiyomi app. + +```gradle +dependencies { + compileOnly project(':duktape-stub') +} +``` + #### Rate limiting library [`lib-ratelimit`](https://github.com/tachiyomiorg/tachiyomi-extensions/tree/master/lib/ratelimit) is a library for adding rate limiting functionality as an [OkHttp interceptor](https://square.github.io/okhttp/interceptors/). diff --git a/annotations/build.gradle.kts b/annotations/build.gradle.kts new file mode 100644 index 000000000..7fada1cc2 --- /dev/null +++ b/annotations/build.gradle.kts @@ -0,0 +1,7 @@ +plugins { + id("kotlin") +} + +dependencies { + compileOnly(Deps.kotlin.stdlib) +} diff --git a/core/src/eu/kanade/tachiyomi/annotations/Nsfw.kt b/annotations/src/main/kotlin/Nsfw.kt similarity index 100% rename from core/src/eu/kanade/tachiyomi/annotations/Nsfw.kt rename to annotations/src/main/kotlin/Nsfw.kt diff --git a/common-dependencies.gradle b/common-dependencies.gradle index 12004288e..888a3df16 100644 --- a/common-dependencies.gradle +++ b/common-dependencies.gradle @@ -12,4 +12,7 @@ dependencies { compileOnly 'org.jsoup:jsoup:1.10.2' compileOnly 'com.google.code.gson:gson:2.8.2' compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' -} + + implementation project(":annotations") + compileOnly project(':duktape-stub') +} \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 2637957fe..ac4e9ea6b 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -1,6 +1,5 @@ plugins { id("com.android.library") - kotlin("android") } android { @@ -13,7 +12,6 @@ android { sourceSets { named("main") { manifest.srcFile("AndroidManifest.xml") - java.setSrcDirs(listOf("src")) res.setSrcDirs(listOf("res")) } } @@ -23,17 +21,4 @@ android { enabled = false } } - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - } -} - -dependencies { - compileOnly(Deps.kotlin.stdlib) } diff --git a/lib/duktape-stub/build.gradle.kts b/lib/duktape-stub/build.gradle.kts new file mode 100644 index 000000000..b07c0af69 --- /dev/null +++ b/lib/duktape-stub/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + java +} + +sourceSets { + main { + java { + srcDirs(listOf("src")) + } + } +} + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} diff --git a/core/src/com/squareup/duktape/Duktape.java b/lib/duktape-stub/src/com/squareup/duktape/Duktape.java similarity index 100% rename from core/src/com/squareup/duktape/Duktape.java rename to lib/duktape-stub/src/com/squareup/duktape/Duktape.java diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/ThemeSourceGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/ThemeSourceGenerator.kt index 84eb4c988..59ed75db6 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/ThemeSourceGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/ThemeSourceGenerator.kt @@ -135,9 +135,9 @@ interface ThemeSourceGenerator { private fun writeSourceClasses(projectSrcPath: String, srcOverridePath: String, source: ThemeSourceData, themePkg: String, themeClass: String) { val projectSrcFile = File(projectSrcPath) projectSrcFile.mkdirs() - val srcOverride = File("$srcOverridePath/${source.pkgName}") - if (srcOverride.exists()) - srcOverride.copyRecursively(projectSrcFile) + val srcOverrideFile = File(srcOverridePath) + if (srcOverrideFile.exists()) + srcOverrideFile.copyRecursively(projectSrcFile) else writeSourceClass(projectSrcFile, source, themePkg, themeClass) } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanGenerator.kt index de70526b9..5f4aaa868 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanGenerator.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.multisrc.genkan -import eu.kanade.tachiyomi.multisrc.ThemeSourceData +import eu.kanade.tachiyomi.multisrc.ThemeSourceData.SingleLang +import eu.kanade.tachiyomi.multisrc.ThemeSourceData.MultiLang import eu.kanade.tachiyomi.multisrc.ThemeSourceGenerator class GenkanGenerator : ThemeSourceGenerator { @@ -12,14 +13,14 @@ class GenkanGenerator : ThemeSourceGenerator { override val baseVersionCode: Int = 1 override val sources = listOf( - ThemeSourceData.MultiLang("Leviatan Scans", "https://leviatanscans.com", listOf("en", "es"), + MultiLang("Leviatan Scans", "https://leviatanscans.com", listOf("en", "es"), className = "LeviatanScansFactory", pkgName = "leviatanscans", overrideVersionCode = 1), - ThemeSourceData.SingleLang("Hunlight Scans", "https://hunlight-scans.info", "en"), - ThemeSourceData.SingleLang("ZeroScans", "https://zeroscans.com", "en"), - ThemeSourceData.SingleLang("The Nonames Scans", "https://the-nonames.com", "en"), - ThemeSourceData.SingleLang("Edelgarde Scans", "https://edelgardescans.com", "en"), - ThemeSourceData.SingleLang("Method Scans", "https://methodscans.com", "en"), - ThemeSourceData.SingleLang("Sleeping Knight Scans", "https://skscans.com", "en") + SingleLang("Hunlight Scans", "https://hunlight-scans.info", "en"), + SingleLang("ZeroScans", "https://zeroscans.com", "en"), + SingleLang("The Nonames Scans", "https://the-nonames.com", "en"), + SingleLang("Edelgarde Scans", "https://edelgardescans.com", "en"), + SingleLang("Method Scans", "https://methodscans.com", "en"), + SingleLang("Sleeping Knight Scans", "https://skscans.com", "en") ) companion object { diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanOriginalGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanOriginalGenerator.kt index e75559c4d..cd5f4bfba 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanOriginalGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/genkan/GenkanOriginalGenerator.kt @@ -1,6 +1,6 @@ package eu.kanade.tachiyomi.multisrc.genkan -import eu.kanade.tachiyomi.multisrc.ThemeSourceData +import eu.kanade.tachiyomi.multisrc.ThemeSourceData.SingleLang import eu.kanade.tachiyomi.multisrc.ThemeSourceGenerator class GenkanOriginalGenerator : ThemeSourceGenerator { @@ -12,9 +12,9 @@ class GenkanOriginalGenerator : ThemeSourceGenerator { override val baseVersionCode: Int = 1 override val sources = listOf( - ThemeSourceData.SingleLang("Reaper Scans", "https://reaperscans.com", "en"), - ThemeSourceData.SingleLang("Hatigarm Scans", "https://hatigarmscanz.net", "en", overrideVersionCode = 1), - ThemeSourceData.SingleLang("SecretScans", "https://secretscans.co", "en"), + SingleLang("Reaper Scans", "https://reaperscans.com", "en"), + SingleLang("Hatigarm Scans", "https://hatigarmscanz.net", "en", overrideVersionCode = 1), + SingleLang("SecretScans", "https://secretscans.co", "en"), ) companion object { diff --git a/settings.gradle.kts b/settings.gradle.kts index 7971057fb..77558de40 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,8 +1,12 @@ +include(":annotations") include(":core") include(":lib-ratelimit") project(":lib-ratelimit").projectDir = File("lib/ratelimit") +include(":duktape-stub") +project(":duktape-stub").projectDir = File("lib/duktape-stub") + include(":lib-dataimage") project(":lib-dataimage").projectDir = File("lib/dataimage")