From f74b23e3eacd2642cffbc9bcc59c55ebf35828e4 Mon Sep 17 00:00:00 2001 From: seew3l <90949336+seew3l@users.noreply.github.com> Date: Wed, 18 Jan 2023 17:18:14 -0500 Subject: [PATCH] DatGarScanlation: Update selectors (#15013) * DatGarScanlation: Update selectors * Add requested changes * Lint --- .../datgarscanlation/src/DatGarScanlation.kt | 32 +++++++++++++++++++ .../multisrc/zeistmanga/ZeistManga.kt | 3 +- .../zeistmanga/ZeistMangaGenerator.kt | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 multisrc/overrides/zeistmanga/datgarscanlation/src/DatGarScanlation.kt diff --git a/multisrc/overrides/zeistmanga/datgarscanlation/src/DatGarScanlation.kt b/multisrc/overrides/zeistmanga/datgarscanlation/src/DatGarScanlation.kt new file mode 100644 index 000000000..7171ca443 --- /dev/null +++ b/multisrc/overrides/zeistmanga/datgarscanlation/src/DatGarScanlation.kt @@ -0,0 +1,32 @@ +package eu.kanade.tachiyomi.extension.es.datgarscanlation + +import eu.kanade.tachiyomi.multisrc.zeistmanga.ZeistManga +import org.jsoup.nodes.Document + +class DatGarScanlation : ZeistManga("DatGarScanlation", "https://datgarscanlation.blogspot.com", "es") { + + private val altChapterFeedRegex = """label\s*=\s*'([^']+)'""".toRegex() + private val altScriptSelector = "#latest > script" + + override fun getChaptersUrl(doc: Document): String { + var chapterRegex = chapterFeedRegex + var script = doc.selectFirst(scriptSelector) + + if (script == null) { + script = doc.selectFirst(altScriptSelector) + chapterRegex = altChapterFeedRegex + } + + val feed = chapterRegex + .find(script.html()) + ?.groupValues?.get(1) + ?: throw Exception("Failed to find chapter feed") + + val url = apiUrl(feed) + .addQueryParameter("start-index", "2") // Only get chapters + .addQueryParameter("max-results", "999999") // Get all chapters + .build() + + return url.toString() + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistManga.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistManga.kt index 075806e26..8ecd4f21d 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistManga.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistManga.kt @@ -42,6 +42,7 @@ abstract class ZeistManga( .addQueryParameter("start-index", "2") // Only get chapters .addQueryParameter("max-results", "999999") // Get all chapters .build() + return url.toString() } @@ -167,7 +168,7 @@ abstract class ZeistManga( override fun searchMangaNextPageSelector(): String? = null - private fun apiUrl(feed: String = "Series"): HttpUrl.Builder { + open fun apiUrl(feed: String = "Series"): HttpUrl.Builder { return "$baseUrl/feeds/posts/default/-/".toHttpUrl().newBuilder() .addPathSegment(feed) .addQueryParameter("alt", "json") diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistMangaGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistMangaGenerator.kt index c2846620f..08b900b1d 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistMangaGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/zeistmanga/ZeistMangaGenerator.kt @@ -9,7 +9,7 @@ class ZeistMangaGenerator : ThemeSourceGenerator { override val themeClass = "ZeistManga" - override val baseVersionCode: Int = 2 + override val baseVersionCode: Int = 3 override val sources = listOf( SingleLang("DatGarScanlation", "https://datgarscanlation.blogspot.com", "es"),