diff --git a/src/all/luscious/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/luscious/default/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from src/all/luscious/res/mipmap-hdpi/ic_launcher.png rename to multisrc/overrides/luscious/default/res/mipmap-hdpi/ic_launcher.png diff --git a/src/all/luscious/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/luscious/default/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from src/all/luscious/res/mipmap-mdpi/ic_launcher.png rename to multisrc/overrides/luscious/default/res/mipmap-mdpi/ic_launcher.png diff --git a/src/all/luscious/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/luscious/default/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from src/all/luscious/res/mipmap-xhdpi/ic_launcher.png rename to multisrc/overrides/luscious/default/res/mipmap-xhdpi/ic_launcher.png diff --git a/src/all/luscious/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/luscious/default/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from src/all/luscious/res/mipmap-xxhdpi/ic_launcher.png rename to multisrc/overrides/luscious/default/res/mipmap-xxhdpi/ic_launcher.png diff --git a/src/all/luscious/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/luscious/default/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from src/all/luscious/res/mipmap-xxxhdpi/ic_launcher.png rename to multisrc/overrides/luscious/default/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/src/all/luscious/res/web_hi_res_512.png b/multisrc/overrides/luscious/default/res/web_hi_res_512.png similarity index 100% rename from src/all/luscious/res/web_hi_res_512.png rename to multisrc/overrides/luscious/default/res/web_hi_res_512.png diff --git a/multisrc/overrides/luscious/luscious/src/LusciousFactory.kt b/multisrc/overrides/luscious/luscious/src/LusciousFactory.kt new file mode 100644 index 000000000..c847e0d6b --- /dev/null +++ b/multisrc/overrides/luscious/luscious/src/LusciousFactory.kt @@ -0,0 +1,32 @@ +package eu.kanade.tachiyomi.extension.all.luscious + +import eu.kanade.tachiyomi.multisrc.luscious.Luscious +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class LusciousFactory : SourceFactory { + override fun createSources(): List = listOf( + LusciousEN(), + LusciousJA(), + LusciousES(), + LusciousIT(), + LusciousDE(), + LusciousFR(), + LusciousZH(), + LusciousKO(), + LusciousOTHER(), + LusciousPT(), + LusciousTH(), + ) +} +class LusciousEN : Luscious("Luscious", "https://www.luscious.net", "en") +class LusciousJA : Luscious("Luscious", "https://www.luscious.net", "ja") +class LusciousES : Luscious("Luscious", "https://www.luscious.net", "es") +class LusciousIT : Luscious("Luscious", "https://www.luscious.net", "it") +class LusciousDE : Luscious("Luscious", "https://www.luscious.net", "de") +class LusciousFR : Luscious("Luscious", "https://www.luscious.net", "fr") +class LusciousZH : Luscious("Luscious", "https://www.luscious.net", "zh") +class LusciousKO : Luscious("Luscious", "https://www.luscious.net", "ko") +class LusciousOTHER : Luscious("Luscious", "https://www.luscious.net", "other") +class LusciousPT : Luscious("Luscious", "https://www.luscious.net", "pt") +class LusciousTH : Luscious("Luscious", "https://www.luscious.net", "th") diff --git a/multisrc/overrides/luscious/lusciousapi/src/LusciousAPIFactory.kt b/multisrc/overrides/luscious/lusciousapi/src/LusciousAPIFactory.kt new file mode 100644 index 000000000..9613a2dc6 --- /dev/null +++ b/multisrc/overrides/luscious/lusciousapi/src/LusciousAPIFactory.kt @@ -0,0 +1,32 @@ +package eu.kanade.tachiyomi.extension.all.lusciousapi + +import eu.kanade.tachiyomi.multisrc.luscious.Luscious +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class LusciousAPIFactory : SourceFactory { + override fun createSources(): List = listOf( + LusciousAPIEN(), + LusciousAPIJA(), + LusciousAPIES(), + LusciousAPIIT(), + LusciousAPIDE(), + LusciousAPIFR(), + LusciousAPIZH(), + LusciousAPIKO(), + LusciousAPIOTHER(), + LusciousAPIPT(), + LusciousAPITH(), + ) +} +class LusciousAPIEN : Luscious("Luscious (API)", "https://api.luscious.net", "en") +class LusciousAPIJA : Luscious("Luscious (API)", "https://api.luscious.net", "ja") +class LusciousAPIES : Luscious("Luscious (API)", "https://api.luscious.net", "es") +class LusciousAPIIT : Luscious("Luscious (API)", "https://api.luscious.net", "it") +class LusciousAPIDE : Luscious("Luscious (API)", "https://api.luscious.net", "de") +class LusciousAPIFR : Luscious("Luscious (API)", "https://api.luscious.net", "fr") +class LusciousAPIZH : Luscious("Luscious (API)", "https://api.luscious.net", "zh") +class LusciousAPIKO : Luscious("Luscious (API)", "https://api.luscious.net", "ko") +class LusciousAPIOTHER : Luscious("Luscious (API)", "https://api.luscious.net", "other") +class LusciousAPIPT : Luscious("Luscious (API)", "https://api.luscious.net", "pt") +class LusciousAPITH : Luscious("Luscious (API)", "https://api.luscious.net", "th") diff --git a/multisrc/overrides/luscious/lusciousmembers/src/LusciousMembersFactory.kt b/multisrc/overrides/luscious/lusciousmembers/src/LusciousMembersFactory.kt new file mode 100644 index 000000000..955e834d3 --- /dev/null +++ b/multisrc/overrides/luscious/lusciousmembers/src/LusciousMembersFactory.kt @@ -0,0 +1,32 @@ +package eu.kanade.tachiyomi.extension.all.lusciousmembers + +import eu.kanade.tachiyomi.multisrc.luscious.Luscious +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class LusciousMembersFactory : SourceFactory { + override fun createSources(): List = listOf( + LusciousMembersEN(), + LusciousMembersJA(), + LusciousMembersES(), + LusciousMembersIT(), + LusciousMembersDE(), + LusciousMembersFR(), + LusciousMembersZH(), + LusciousMembersKO(), + LusciousMembersOTHER(), + LusciousMembersPT(), + LusciousMembersTH(), + ) +} +class LusciousMembersEN : Luscious("Luscious (Members)", "https://members.luscious.net", "en") +class LusciousMembersJA : Luscious("Luscious (Members)", "https://members.luscious.net", "ja") +class LusciousMembersES : Luscious("Luscious (Members)", "https://members.luscious.net", "es") +class LusciousMembersIT : Luscious("Luscious (Members)", "https://members.luscious.net", "it") +class LusciousMembersDE : Luscious("Luscious (Members)", "https://members.luscious.net", "de") +class LusciousMembersFR : Luscious("Luscious (Members)", "https://members.luscious.net", "fr") +class LusciousMembersZH : Luscious("Luscious (Members)", "https://members.luscious.net", "zh") +class LusciousMembersKO : Luscious("Luscious (Members)", "https://members.luscious.net", "ko") +class LusciousMembersOTHER : Luscious("Luscious (Members)", "https://members.luscious.net", "other") +class LusciousMembersPT : Luscious("Luscious (Members)", "https://members.luscious.net", "pt") +class LusciousMembersTH : Luscious("Luscious (Members)", "https://members.luscious.net", "th") diff --git a/src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/Luscious.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/Luscious.kt similarity index 96% rename from src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/Luscious.kt rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/Luscious.kt index bef59979e..42f933951 100644 --- a/src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/Luscious.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/Luscious.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.all.luscious +package eu.kanade.tachiyomi.multisrc.luscious import com.github.salomonbrys.kotson.addProperty import com.github.salomonbrys.kotson.fromJson @@ -28,17 +28,35 @@ import java.text.SimpleDateFormat import java.util.Date import java.util.Locale -class Luscious(override val lang: String, private val lusLang: String) : HttpSource() { - - override val baseUrl: String = "https://www.luscious.net" - override val name: String = "Luscious" +abstract class Luscious( + override val name: String, + override val baseUrl: String, + override val lang: String ) : HttpSource() { + + //Based on Luscios single source extension form https://github.com/tachiyomiorg/tachiyomi-extensions/commit/aacf56d0c0ddb173372aac69d798ae998f178377 + //with modifiaction to make it support multisrc + override val supportsLatest: Boolean = true - - private val apiBaseUrl: String = "https://api.luscious.net/graphql/nobatch/" - + private val apiBaseUrl: String = "$baseUrl/graphql/nobatch/" private val gson = Gson() - override val client: OkHttpClient = network.cloudflareClient + private val lusLang: String = lusLang(lang) + private fun lusLang(lang: String): String { + return when (lang) { + "en" -> "1" + "ja" -> "2" + "es" -> "3" + "it" -> "4" + "de" -> "5" + "fr" -> "6" + "zh" -> "8" + "ko" -> "9" + "pt" -> "100" + "th" -> "101" + else -> "99" + } + } + // Common @@ -273,7 +291,7 @@ class Luscious(override val lang: String, private val lusLang: String) : HttpSou val document = response.asJsoup() return SManga.create().apply { - artist = document.select(".o-tag--category:contains(Artist:) .o-tag")?.joinToString() { it.text() } + artist = document.select(".o-tag--category:contains(Artist:) .o-tag")?.joinToString { it.text() } author = artist genre = parseMangaGenre(document) @@ -387,7 +405,7 @@ class Luscious(override val lang: String, private val lusLang: String) : HttpSou SelectFilterOption("Date - Upcoming", "date_upcoming"), SelectFilterOption("Date - Trending", "date_trending"), SelectFilterOption("Date - Featured", "date_featured"), - SelectFilterOption("Date - Last Viewed", "date_last_interaction"), + SelectFilterOption("Date - Last Viewed", "date_last_interaction") ) fun getAlbumTypeFilters() = listOf( diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/LusciousGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/LusciousGenerator.kt new file mode 100644 index 000000000..c64921868 --- /dev/null +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/luscious/LusciousGenerator.kt @@ -0,0 +1,27 @@ +package eu.kanade.tachiyomi.multisrc.luscious + +import generator.ThemeSourceData.MultiLang +import generator.ThemeSourceData.SingleLang +import generator.ThemeSourceGenerator + +class LusciousGenerator : ThemeSourceGenerator { + + override val themePkg = "luscious" + + override val themeClass = "Luscious" + + override val baseVersionCode: Int = 1 + + override val sources = listOf( + MultiLang("Luscious", "https://www.luscious.net", listOf("en","ja", "es", "it", "de", "fr", "zh", "ko", "other", "pt", "th"), isNsfw = true, className = "LusciousFactory", overrideVersionCode = 2), + MultiLang("Luscious (Members)", "https://members.luscious.net", listOf("en","ja", "es", "it", "de", "fr", "zh", "ko", "other", "pt", "th"), isNsfw = true, className = "LusciousMembersFactory", pkgName = "lusciousmembers"),//Requires Account + MultiLang("Luscious (API)", "https://api.luscious.net", listOf("en","ja", "es", "it", "de", "fr", "zh", "ko", "other", "pt", "th"), isNsfw = true, className = "LusciousAPIFactory", pkgName = "lusciousapi") + ) + + companion object { + @JvmStatic + fun main(args: Array) { + LusciousGenerator().createAll() + } + } +} diff --git a/src/all/luscious/AndroidManifest.xml b/src/all/luscious/AndroidManifest.xml deleted file mode 100644 index 30deb7f79..000000000 --- a/src/all/luscious/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/all/luscious/build.gradle b/src/all/luscious/build.gradle deleted file mode 100644 index f1db7f399..000000000 --- a/src/all/luscious/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' - -ext { - extName = 'Luscious' - pkgNameSuffix = 'all.luscious' - extClass = '.LusciousFactory' - extVersionCode = 2 - libVersion = '1.2' - containsNsfw = true -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/LusciousFactory.kt b/src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/LusciousFactory.kt deleted file mode 100644 index 3da7223ad..000000000 --- a/src/all/luscious/src/eu/kanade/tachiyomi/extension/all/luscious/LusciousFactory.kt +++ /dev/null @@ -1,23 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.luscious - -import eu.kanade.tachiyomi.annotations.Nsfw -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory - -@Nsfw -class LusciousFactory : SourceFactory { - - override fun createSources(): List = listOf( - Luscious("en", Luscious.ENGLISH_LUS_LANG_VAL), - Luscious("ja", Luscious.JAPANESE_LUS_LANG_VAL), - Luscious("es", Luscious.SPANISH_LUS_LANG_VAL), - Luscious("it", Luscious.ITALIAN_LUS_LANG_VAL), - Luscious("de", Luscious.GERMAN_LUS_LANG_VAL), - Luscious("fr", Luscious.FRENCH_LUS_LANG_VAL), - Luscious("zh", Luscious.CHINESE_LUS_LANG_VAL), - Luscious("ko", Luscious.KOREAN_LUS_LANG_VAL), - Luscious("other", Luscious.OTHERS_LUS_LANG_VAL), - Luscious("pt", Luscious.PORTUGESE_LUS_LANG_VAL), - Luscious("th", Luscious.THAI_LUS_LANG_VAL) - ) -}