From ee5aad975857cebbf5e43ff8b96c242d589167c6 Mon Sep 17 00:00:00 2001 From: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> Date: Tue, 25 Apr 2023 14:20:21 -0300 Subject: [PATCH] Fix HTTP error 404 and No results found in Madara sources (#16184) Fix HTTP error 404 and No results found in Madara sources. --- multisrc/overrides/madara/drakescans/src/DrakeScans.kt | 9 ++++++++- .../madara/manhwahentaime/src/ManhwahentaiMe.kt | 2 ++ multisrc/overrides/madara/mmscans/src/MMScans.kt | 4 ++++ multisrc/overrides/madara/shinigami/src/Shinigami.kt | 2 ++ .../overrides/madara/yugenmangas/src/YugenMangas.kt | 2 ++ .../java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt | 8 ++++++-- .../tachiyomi/multisrc/madara/MadaraGenerator.kt | 10 +++++----- 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/multisrc/overrides/madara/drakescans/src/DrakeScans.kt b/multisrc/overrides/madara/drakescans/src/DrakeScans.kt index e70f56cea..1fb045eba 100644 --- a/multisrc/overrides/madara/drakescans/src/DrakeScans.kt +++ b/multisrc/overrides/madara/drakescans/src/DrakeScans.kt @@ -4,7 +4,14 @@ import eu.kanade.tachiyomi.multisrc.madara.Madara import java.text.SimpleDateFormat import java.util.Locale -class DrakeScans : Madara("Drake Scans", "https://drakescans.com", "en", SimpleDateFormat("MM/dd/yyyy", Locale.US)) { +class DrakeScans : Madara( + "Drake Scans", + "https://drakescans.com", + "en", + SimpleDateFormat("MM/dd/yyyy", Locale.US), +) { override val mangaDetailsSelectorTag = "" + + override val mangaSubString = "series" } diff --git a/multisrc/overrides/madara/manhwahentaime/src/ManhwahentaiMe.kt b/multisrc/overrides/madara/manhwahentaime/src/ManhwahentaiMe.kt index d30b3a8f4..273e9e872 100644 --- a/multisrc/overrides/madara/manhwahentaime/src/ManhwahentaiMe.kt +++ b/multisrc/overrides/madara/manhwahentaime/src/ManhwahentaiMe.kt @@ -5,4 +5,6 @@ import eu.kanade.tachiyomi.multisrc.madara.Madara class ManhwahentaiMe : Madara("Manhwahentai.me", "https://manhwahentai.me", "en") { override val useNewChapterEndpoint: Boolean = true + + override val mangaSubString = "webtoon" } diff --git a/multisrc/overrides/madara/mmscans/src/MMScans.kt b/multisrc/overrides/madara/mmscans/src/MMScans.kt index 9f688d691..db859e4ba 100644 --- a/multisrc/overrides/madara/mmscans/src/MMScans.kt +++ b/multisrc/overrides/madara/mmscans/src/MMScans.kt @@ -6,6 +6,10 @@ import eu.kanade.tachiyomi.source.model.SManga import org.jsoup.nodes.Element class MMScans : Madara("MMScans", "https://mm-scans.org", "en") { + + // The site customized the listing and does not include a .manga class. + override val filterNonMangaItems = false + override val popularMangaUrlSelector = "div.item-summary a" override fun chapterListSelector() = "li.chapter-li" override fun searchMangaSelector() = "a" diff --git a/multisrc/overrides/madara/shinigami/src/Shinigami.kt b/multisrc/overrides/madara/shinigami/src/Shinigami.kt index 9d31277fe..db53a74ac 100644 --- a/multisrc/overrides/madara/shinigami/src/Shinigami.kt +++ b/multisrc/overrides/madara/shinigami/src/Shinigami.kt @@ -9,6 +9,8 @@ class Shinigami : Madara("Shinigami", "https://shinigami.id", "id") { // moved from Reaper Scans (id) to Shinigami (id) override val id = 3411809758861089969 + override val mangaSubString = "series" + // Tags are useless as they are just SEO keywords. override val mangaDetailsSelectorTag = "" diff --git a/multisrc/overrides/madara/yugenmangas/src/YugenMangas.kt b/multisrc/overrides/madara/yugenmangas/src/YugenMangas.kt index 8d63d73da..dc62d586a 100644 --- a/multisrc/overrides/madara/yugenmangas/src/YugenMangas.kt +++ b/multisrc/overrides/madara/yugenmangas/src/YugenMangas.kt @@ -28,6 +28,8 @@ class YugenMangas : Madara( override val useNewChapterEndpoint: Boolean = true + override val mangaSubString = "series" + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { name = element.selectFirst("p.chapter-manhwa-title")!!.text() date_upload = parseChapterDate(element.selectFirst("span.chapter-release-date i")?.text()) diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt index 6e88837cf..f1d2e4bcc 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt @@ -178,6 +178,12 @@ abstract class Madara( */ protected open val fetchGenres: Boolean = true + /** + * The path used in the URL for the manga pages. Can be + * changed if needed as some sites modify it to other words. + */ + protected open val mangaSubString = "manga" + override fun headersBuilder(): Headers.Builder = Headers.Builder() .add("Referer", "$baseUrl/") @@ -247,8 +253,6 @@ abstract class Madara( // Search Manga - open val mangaSubString = "manga" - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { if (query.startsWith(URL_SEARCH_PREFIX)) { val mangaUrl = "$baseUrl/$mangaSubString/${query.substringAfter(URL_SEARCH_PREFIX)}" diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index 9f86b9f59..6055090f0 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -82,7 +82,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("DokkoManga", "https://dokkomanga.xyz", "es"), SingleLang("DoujinHentai", "https://doujinhentai.net", "es", isNsfw = true, overrideVersionCode = 1), SingleLang("DragonTranslation", "https://dragontranslation.com", "es", isNsfw = true, overrideVersionCode = 4), - SingleLang("Drake Scans", "https://drakescans.com", "en", overrideVersionCode = 2), + SingleLang("Drake Scans", "https://drakescans.com", "en", overrideVersionCode = 3), SingleLang("Dream Manga", "https://www.swarmmanga.com", "en", overrideVersionCode = 3), SingleLang("Drope Scan", "https://dropescan.com", "pt-BR", overrideVersionCode = 4), SingleLang("EGY Manga", "https://egymanga.net", "ar", overrideVersionCode = 1), @@ -290,7 +290,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("ManhwaBookShelf", "https://manhwabookshelf.com", "en"), SingleLang("ManhwaClan", "https://manhwaclan.com", "en"), SingleLang("Manhwafull", "https://manhwafull.com", "en", overrideVersionCode = 1), - SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true, overrideVersionCode = 2), + SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true, overrideVersionCode = 3), SingleLang("Manhwas Men", "https://manhwas.men", "en", className = "ManhwasMen", isNsfw = true), SingleLang("ManhwaTime", "https://manhwatime.com", "ar"), SingleLang("Manhwatop", "https://manhwatop.com", "en", overrideVersionCode = 2), @@ -310,7 +310,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Mirad Scanlator", "https://miradscanlator.site", "pt-BR", overrideVersionCode = 1), SingleLang("Mixed Manga", "https://mixedmanga.com", "en", overrideVersionCode = 1), SingleLang("Mizu Mangás", "https://mizumangas.com.br", "pt-BR", isNsfw = true, className = "MizuMangas"), - SingleLang("MMScans", "https://mm-scans.org", "en", overrideVersionCode = 4), + SingleLang("MMScans", "https://mm-scans.org", "en", overrideVersionCode = 5), SingleLang("Momo no Hana Scan", "https://momonohanascan.com", "pt-BR", className = "MomoNoHanaScan", overrideVersionCode = 1), SingleLang("MonarcaManga", "https://monarcamanga.com", "es"), SingleLang("Moon Witch In Love", "https://moonwitchinlovescan.com", "pt-BR"), @@ -377,7 +377,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Shayami", "https://shayami.com", "es"), SingleLang("Shield Manga", "https://shieldmanga.io", "en", overrideVersionCode = 3), SingleLang("Shimada Scans", "https://shimadascans.com", "en"), - SingleLang("Shinigami", "https://shinigami.id", "id"), + SingleLang("Shinigami", "https://shinigami.id", "id", overrideVersionCode = 1), SingleLang("Shirai Scans", "https://shiraiscans.com.br", "pt-BR"), SingleLang("Shooting Star Scans", "https://shootingstarscans.com", "en"), SingleLang("ShoujoHearts", "https://shoujohearts.com", "en", overrideVersionCode = 2), @@ -445,7 +445,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("YaoiScan", "https://yaoiscan.com", "en", isNsfw = true), SingleLang("YaoiToon", "https://yaoitoon.com", "en", isNsfw = true), SingleLang("YonaBar", "https://yonabar.com", "ar", isNsfw = true, overrideVersionCode = 2), - SingleLang("YugenMangas", "https://yugenmangas.com.br", "pt-BR", overrideVersionCode = 1), + SingleLang("YugenMangas", "https://yugenmangas.com.br", "pt-BR", overrideVersionCode = 2), SingleLang("Yuri Verso", "https://yuri.live", "pt-BR", overrideVersionCode = 3), SingleLang("Zero Scan", "https://zeroscan.com.br", "pt-BR", isNsfw = true), SingleLang("ZinChanManga", "https://zinchanmanga.com", "en", isNsfw = true),