From 63e9f627e07a6524d0ad3b479c7fe7fa2c018019 Mon Sep 17 00:00:00 2001 From: FourTOne5 <59261191+FourTOne5@users.noreply.github.com> Date: Mon, 27 Dec 2021 17:05:38 +0600 Subject: [PATCH] Flame Scans: Update Permanent Url logic and enable by default (#10232) * Flame Scans: Update Permanent Url logic and enable by default * Quick Fix --- .../flamescans/src/FlameScans.kt | 54 +++++++++---------- .../wpmangareader/WPMangaReaderGenerator.kt | 2 +- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/multisrc/overrides/wpmangareader/flamescans/src/FlameScans.kt b/multisrc/overrides/wpmangareader/flamescans/src/FlameScans.kt index e36682d8d..61ecf1ef1 100644 --- a/multisrc/overrides/wpmangareader/flamescans/src/FlameScans.kt +++ b/multisrc/overrides/wpmangareader/flamescans/src/FlameScans.kt @@ -137,6 +137,7 @@ open class FlameScans( } // Split Image Fixer End + // Permanent Url start override fun fetchPopularManga(page: Int): Observable<MangasPage> { return super.fetchPopularManga(page).tempUrlToPermIfNeeded() } @@ -159,41 +160,36 @@ open class FlameScans( } private fun SManga.tempUrlToPermIfNeeded(): SManga { - val sManga = this + val turnTempUrlToPerm = preferences.getBoolean(getPermanentMangaUrlPreferenceKey(), true) + if (!turnTempUrlToPerm) return this - val turnTempUrlToPerm = preferences.getBoolean(getPermanentMangaUrlPreferenceKey(), false) - if (!turnTempUrlToPerm) return sManga - - val sMangaUrl = sManga.url - val sMangaTitleFirstWord = sManga.title.split(" ")[0] - return if (sMangaUrl.startsWith("$mangaUrlDirectory/$sMangaTitleFirstWord")) { - sManga - } else { - sManga.url = sMangaUrl.replaceFirst(TEMP_TO_PERM_URL_REGEX, "$1") - sManga + val sMangaTitleFirstWord = this.title.split(" ")[0] + if (!this.url.contains("/$sMangaTitleFirstWord", ignoreCase = true)) { + this.url = this.url.replaceFirst(TEMP_TO_PERM_URL_REGEX, "$1") } + return this } override fun fetchChapterList(manga: SManga): Observable<List<SChapter>> { - return super.fetchChapterList(manga).map { sChapterList -> - sChapterList.map { it.tempUrlToPermIfNeeded() } + val sManga = manga.tempUrlToPermIfNeeded() + return super.fetchChapterList(sManga).map { sChapterList -> + sChapterList.map { it.tempUrlToPermIfNeeded(sManga) } } } - private fun SChapter.tempUrlToPermIfNeeded(): SChapter { - val sChapter = this + private fun SChapter.tempUrlToPermIfNeeded(manga: SManga): SChapter { + val turnTempUrlToPerm = preferences.getBoolean(getPermanentChapterUrlPreferenceKey(), true) + if (!turnTempUrlToPerm) return this - val turnTempUrlToPerm = preferences.getBoolean(getPermanentChapterUrlPreferenceKey(), false) - if (!turnTempUrlToPerm) return sChapter - - val sChapterUrl = sChapter.url - val sChapterNameFirstWord = sChapter.name.split(" ")[0] - return if (sChapterUrl.startsWith("/$sChapterNameFirstWord")) { - sChapter - } else { - sChapter.url = sChapterUrl.replaceFirst(TEMP_TO_PERM_URL_REGEX, "$1") - sChapter + val sChapterNameFirstWord = this.name.split(" ")[0] + val sMangaTitleFirstWord = manga.title.split(" ")[0] + if ( + !this.url.contains("/$sChapterNameFirstWord", ignoreCase = true) && + !this.url.contains("/$sMangaTitleFirstWord", ignoreCase = true) + ) { + this.url = this.url.replaceFirst(TEMP_TO_PERM_URL_REGEX, "$1") } + return this } override fun setupPreferenceScreen(screen: PreferenceScreen) { @@ -201,7 +197,7 @@ open class FlameScans( key = getPermanentMangaUrlPreferenceKey() title = PREF_PERM_MANGA_URL_TITLE summary = PREF_PERM_MANGA_URL_SUMMARY - setDefaultValue(false) + setDefaultValue(true) setOnPreferenceChangeListener { _, newValue -> val checkValue = newValue as Boolean @@ -214,7 +210,7 @@ open class FlameScans( key = getPermanentChapterUrlPreferenceKey() title = PREF_PERM_CHAPTER_URL_TITLE summary = PREF_PERM_CHAPTER_URL_SUMMARY - setDefaultValue(false) + setDefaultValue(true) setOnPreferenceChangeListener { _, newValue -> val checkValue = newValue as Boolean @@ -240,11 +236,11 @@ open class FlameScans( private const val COMPOSED_SUFFIX = "?comp" private const val PREF_PERM_MANGA_URL_KEY_PREFIX = "pref_permanent_manga_url_" - private const val PREF_PERM_MANGA_URL_TITLE = "Permanent Manga Url" + private const val PREF_PERM_MANGA_URL_TITLE = "Permanent Manga URL" private const val PREF_PERM_MANGA_URL_SUMMARY = "Turns all manga urls into permanent ones." private const val PREF_PERM_CHAPTER_URL_KEY_PREFIX = "pref_permanent_chapter_url" - private const val PREF_PERM_CHAPTER_URL_TITLE = "Permanent Chapter URl" + private const val PREF_PERM_CHAPTER_URL_TITLE = "Permanent Chapter URL" private const val PREF_PERM_CHAPTER_URL_SUMMARY = "Turns all chapter urls into permanent one." private val TEMP_TO_PERM_URL_REGEX = Regex("""(/)\d+-""") diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt index 11072571f..59cb90a98 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangareader/WPMangaReaderGenerator.kt @@ -13,7 +13,7 @@ class WPMangaReaderGenerator : ThemeSourceGenerator { override val baseVersionCode: Int = 11 override val sources = listOf( - MultiLang("Flame Scans", "https://flamescans.org", listOf("ar", "en"), className = "FlameScansFactory", pkgName = "flamescans"), + MultiLang("Flame Scans", "https://flamescans.org", listOf("ar", "en"), className = "FlameScansFactory", pkgName = "flamescans", overrideVersionCode = 1), SingleLang("Anitation Arts", "https://anitationarts.org", "en", overrideVersionCode = 1), SingleLang("Alpha Scans", "https://alpha-scans.org", "en", overrideVersionCode = 1), SingleLang("BeastScans", "https://beastscans.com", "en"),