From 4bf6be0a99cdfeb96345aca7c87cd1ab8c771a4d Mon Sep 17 00:00:00 2001 From: bapeey <90949336+bapeey@users.noreply.github.com> Date: Sat, 19 Oct 2024 07:47:20 -0500 Subject: [PATCH] GenzToons: Update theme and domain (#5587) * update theme and domain * add paid chapters preference --- src/en/suryascans/build.gradle | 6 +- .../extension/en/suryascans/GenzToons.kt | 60 ++++++++++++++++--- 2 files changed, 56 insertions(+), 10 deletions(-) diff --git a/src/en/suryascans/build.gradle b/src/en/suryascans/build.gradle index 235a94a0c4..aa0088e2ce 100644 --- a/src/en/suryascans/build.gradle +++ b/src/en/suryascans/build.gradle @@ -1,9 +1,9 @@ ext { extName = 'Genz Toons' extClass = '.GenzToons' - themePkg = 'mangathemesia' - baseUrl = 'https://genztoons.com' - overrideVersionCode = 4 + themePkg = 'keyoapp' + baseUrl = 'https://genzupdates.com' + overrideVersionCode = 28 } apply from: "$rootDir/common.gradle" diff --git a/src/en/suryascans/src/eu/kanade/tachiyomi/extension/en/suryascans/GenzToons.kt b/src/en/suryascans/src/eu/kanade/tachiyomi/extension/en/suryascans/GenzToons.kt index 95384fc276..dc16b4d62f 100644 --- a/src/en/suryascans/src/eu/kanade/tachiyomi/extension/en/suryascans/GenzToons.kt +++ b/src/en/suryascans/src/eu/kanade/tachiyomi/extension/en/suryascans/GenzToons.kt @@ -1,16 +1,62 @@ package eu.kanade.tachiyomi.extension.en.suryascans -import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia +import android.app.Application +import android.content.SharedPreferences +import androidx.preference.PreferenceScreen +import androidx.preference.SwitchPreferenceCompat +import eu.kanade.tachiyomi.multisrc.keyoapp.Keyoapp import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.ConfigurableSource +import eu.kanade.tachiyomi.source.model.SChapter +import org.jsoup.nodes.Element +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get -class GenzToons : MangaThemesia( - "Genz Toons", - "https://genztoons.com", - "en", -) { - override val id = 2909429739457928148 +class GenzToons : + Keyoapp( + "Genz Toons", + "https://genztoons.com", + "en", + ), + ConfigurableSource { + + private val preferences: SharedPreferences = + Injekt.get().getSharedPreferences("source_$id", 0x0000) override val client = super.client.newBuilder() .rateLimit(3) .build() + + override fun chapterListSelector(): String { + if (!preferences.showPaidChapters) { + return "#chapters > a:not(:has(.text-sm span:matches(Upcoming))):not(:has(img[src*=Coin.svg]))" + } + return "#chapters > a:not(:has(.text-sm span:matches(Upcoming)))" + } + + override fun chapterFromElement(element: Element): SChapter { + return super.chapterFromElement(element).apply { + if (element.select("img[src*=Coin.svg]").isNotEmpty()) { + name = "🔒 $name" + } + } + } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + SwitchPreferenceCompat(screen.context).apply { + key = SHOW_PAID_CHAPTERS_PREF + title = "Display paid chapters" + summaryOn = "Paid chapters will appear." + summaryOff = "Only free chapters will be displayed." + setDefaultValue(SHOW_PAID_CHAPTERS_DEFAULT) + }.also(screen::addPreference) + } + + private val SharedPreferences.showPaidChapters: Boolean + get() = getBoolean(SHOW_PAID_CHAPTERS_PREF, SHOW_PAID_CHAPTERS_DEFAULT) + + companion object { + private const val SHOW_PAID_CHAPTERS_PREF = "pref_show_paid_chap" + private const val SHOW_PAID_CHAPTERS_DEFAULT = false + } }