From 61b063a7c033944d223419f4f319fc4fd38a1762 Mon Sep 17 00:00:00 2001 From: Dexroneum <46288465+Dexroneum@users.noreply.github.com> Date: Sun, 13 Nov 2022 19:43:48 +0000 Subject: [PATCH] Manhwa18.cc little fixes (#14225) --- .../manhwa18cc/src/Manhwa18CcFactory.kt | 43 ++++++++++--------- .../multisrc/madara/MadaraGenerator.kt | 2 +- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/multisrc/overrides/madara/manhwa18cc/src/Manhwa18CcFactory.kt b/multisrc/overrides/madara/manhwa18cc/src/Manhwa18CcFactory.kt index f711d2e0d..e5acc834b 100644 --- a/multisrc/overrides/madara/manhwa18cc/src/Manhwa18CcFactory.kt +++ b/multisrc/overrides/madara/manhwa18cc/src/Manhwa18CcFactory.kt @@ -20,34 +20,36 @@ class Manhwa18CcFactory : SourceFactory { ) } -class Manhwa18CcEN : Manhwa18Cc("Manhwa18.cc", "https://manhwa18.cc", "en") { - override fun popularMangaSelector() = "div.manga-item:not(:contains(Raw))" -} -class Manhwa18CcKO : Manhwa18Cc("Manhwa18.cc", "https://manhwa18.cc", "ko") { - override fun popularMangaSelector() = "div.manga-item:contains(Raw)" -} class Manhwa18CcALL : Manhwa18Cc("Manhwa18.cc", "https://manhwa18.cc", "all") +class Manhwa18CcEN : Manhwa18Cc("Manhwa18.cc", "https://manhwa18.cc", "en") { + override fun popularMangaSelector() = "div.manga-item:not(:has(h3 a[title$='Raw']))" +} + +class Manhwa18CcKO : Manhwa18Cc("Manhwa18.cc", "https://manhwa18.cc", "ko") { + override fun popularMangaSelector() = "div.manga-item:has(h3 a[title$='Raw'])" + override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/raw/$page") +} + abstract class Manhwa18Cc( override val name: String, override val baseUrl: String, - lang: String + lang: String, ) : Madara(name, baseUrl, lang, SimpleDateFormat("dd MMM yyyy", Locale.US)) { override val useLoadMoreSearch = false + override val fetchGenres = false override fun popularMangaSelector() = "div.manga-item" - override val popularMangaUrlSelector = "div.data > h3 > a" - override fun popularMangaNextPageSelector() = "ul.pagination > li > a" - override fun popularMangaRequest(page: Int): Request { - return GET("$baseUrl/webtoons/$page?orderby=trending") - } + override val popularMangaUrlSelector = "div.manga-item div.data a" - override fun latestUpdatesRequest(page: Int): Request { - return GET("$baseUrl/webtoons/$page?orderby=latest") - } + override fun popularMangaNextPageSelector() = "ul.pagination li.next a" + + override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/webtoons/$page?orderby=trending") + + override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/webtoons/$page?orderby=latest") override fun searchMangaSelector() = popularMangaSelector() @@ -58,22 +60,23 @@ abstract class Manhwa18Cc( override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { // After searching and go back to popular page, it always sent empty query thus display // "No results found" message. So this fix redirect to popular page. - if (query.isBlank()) - return popularMangaRequest(1) + if (query.isBlank()) return popularMangaRequest(page) return GET("$baseUrl/search?q=$query&page=$page") } override val mangaSubString = "webtoon" - override fun chapterListSelector() = "li.wleft" + override val mangaDetailsSelectorDescription = "div.panel-story-description div.dsct" + + override fun chapterListSelector() = "li.a-h" override fun chapterDateSelector() = "span.chapter-time" override val pageListParseSelector = "div.read-content img" - override fun pageListParse(document: Document): List<Page> { - return document.select(pageListParseSelector).mapIndexed { index, element -> + override fun pageListParse(document: Document): List<Page> = mutableListOf<Page>().apply { + document.select(pageListParseSelector).mapIndexed { index, element -> Page( index, document.location(), 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 62e7a60e1..144e63fa2 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 @@ -15,7 +15,7 @@ class MadaraGenerator : ThemeSourceGenerator { override val sources = listOf( MultiLang("Leviatan Scans", "https://leviatanscans.com", listOf("en", "es"), className = "LeviatanScansFactory", overrideVersionCode = 13), MultiLang("MangaForFree.net", "https://mangaforfree.net", listOf("en", "ko", "all"), isNsfw = true, className = "MangaForFreeFactory", pkgName = "mangaforfree", overrideVersionCode = 1), - MultiLang("Manhwa18.cc", "https://manhwa18.cc", listOf("en", "ko", "all"), isNsfw = true, className = "Manhwa18CcFactory", pkgName = "manhwa18cc", overrideVersionCode = 2), + MultiLang("Manhwa18.cc", "https://manhwa18.cc", listOf("en", "ko", "all"), isNsfw = true, className = "Manhwa18CcFactory", pkgName = "manhwa18cc", overrideVersionCode = 3), MultiLang("Olympus Scanlation", "https://olympusscanlation.com", listOf("es", "pt-BR")), MultiLang("Reaper Scans", "https://reaperscans.com", listOf("fr", "id", "tr"), className = "ReaperScansFactory", pkgName = "reaperscans", overrideVersionCode = 11), MultiLang("Seven King Scanlation", "https://sksubs.net", listOf("es", "en"), isNsfw = true),