diff --git a/lib-multisrc/keyoapp/build.gradle.kts b/lib-multisrc/keyoapp/build.gradle.kts index 84e70d389..8ed43ddef 100644 --- a/lib-multisrc/keyoapp/build.gradle.kts +++ b/lib-multisrc/keyoapp/build.gradle.kts @@ -2,7 +2,7 @@ plugins { id("lib-multisrc") } -baseVersionCode = 17 +baseVersionCode = 18 dependencies { api(project(":lib:i18n")) diff --git a/lib-multisrc/keyoapp/src/eu/kanade/tachiyomi/multisrc/keyoapp/Keyoapp.kt b/lib-multisrc/keyoapp/src/eu/kanade/tachiyomi/multisrc/keyoapp/Keyoapp.kt index ac047c99f..e997563e7 100644 --- a/lib-multisrc/keyoapp/src/eu/kanade/tachiyomi/multisrc/keyoapp/Keyoapp.kt +++ b/lib-multisrc/keyoapp/src/eu/kanade/tachiyomi/multisrc/keyoapp/Keyoapp.kt @@ -215,7 +215,9 @@ abstract class Keyoapp( protected open val statusSelector: String = "div:has(span:containsOwn(Status)) ~ div" protected open val authorSelector: String = "div:has(span:containsOwn(Author)) ~ div" protected open val artistSelector: String = "div:has(span:containsOwn(Artist)) ~ div" - protected open val genreSelector: String = "div:has(span:containsOwn(Type)) ~ div" + protected open val genreSelector: String = "div.grid:has(>h1) > div > a:not([title='Status'])" + + protected open val typeSelector: String = "div:has(span:containsOwn(Type)) ~ div" protected open val dateSelector: String = ".text-xs" override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { @@ -226,16 +228,16 @@ abstract class Keyoapp( author = document.selectFirst(authorSelector)?.text() artist = document.selectFirst(artistSelector)?.text() genre = buildList { - document.selectFirst(genreSelector)?.text()?.replaceFirstChar { + document.selectFirst(typeSelector)?.text()?.replaceFirstChar { if (it.isLowerCase()) { it.titlecase( - Locale.getDefault(), + Locale.ENGLISH, ) } else { it.toString() } }.let(::add) - document.select("div.grid:has(>h1) > div > a").forEach { add(it.text()) } + document.select(genreSelector).forEach { add(it.text()) } }.joinToString() } diff --git a/src/en/aeinscans/src/eu/kanade/tachiyomi/extension/en/aeinscans/AeinScans.kt b/src/en/aeinscans/src/eu/kanade/tachiyomi/extension/en/aeinscans/AeinScans.kt index 81b57b116..d772dab9f 100644 --- a/src/en/aeinscans/src/eu/kanade/tachiyomi/extension/en/aeinscans/AeinScans.kt +++ b/src/en/aeinscans/src/eu/kanade/tachiyomi/extension/en/aeinscans/AeinScans.kt @@ -11,5 +11,5 @@ class AeinScans : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" } diff --git a/src/en/artlapsa/src/eu/kanade/tachiyomi/extension/en/artlapsa/ArtLapsa.kt b/src/en/artlapsa/src/eu/kanade/tachiyomi/extension/en/artlapsa/ArtLapsa.kt index 79cc918dd..073a6e1dd 100644 --- a/src/en/artlapsa/src/eu/kanade/tachiyomi/extension/en/artlapsa/ArtLapsa.kt +++ b/src/en/artlapsa/src/eu/kanade/tachiyomi/extension/en/artlapsa/ArtLapsa.kt @@ -66,7 +66,7 @@ class ArtLapsa : Keyoapp("Art Lapsa", "https://artlapsa.com", "en") { override val descriptionSelector = "#expand_content" override val statusSelector = "[alt=Status]" - override val genreSelector = "[alt=Type]" + override val typeSelector = "[alt=Type]" override fun chapterListSelector(): String { if (!preferences.showPaidChapters) { diff --git a/src/en/asmotoon/src/eu/kanade/tachiyomi/extension/en/asmotoon/Asmotoon.kt b/src/en/asmotoon/src/eu/kanade/tachiyomi/extension/en/asmotoon/Asmotoon.kt index f79baf6e7..29dc06ed4 100644 --- a/src/en/asmotoon/src/eu/kanade/tachiyomi/extension/en/asmotoon/Asmotoon.kt +++ b/src/en/asmotoon/src/eu/kanade/tachiyomi/extension/en/asmotoon/Asmotoon.kt @@ -1,9 +1,37 @@ package eu.kanade.tachiyomi.extension.en.asmotoon import eu.kanade.tachiyomi.multisrc.keyoapp.Keyoapp +import eu.kanade.tachiyomi.source.model.SManga +import org.jsoup.nodes.Document +import java.util.Locale class Asmotoon : Keyoapp( "Asmodeus Scans", "https://asmotoon.com", "en", -) +) { + // filtering novel entries + override fun popularMangaSelector() = "div:contains(Trending) + div .group.overflow-hidden.grid:not(:has(.capitalize:contains(Novel)))" + override fun latestUpdatesSelector() = "div.grid > div.group:not(:has(.capitalize:contains(Novel)))" + override fun searchMangaSelector() = "#searched_series_page > button:not(:has(.capitalize:contains(Novel)))" + + override val descriptionSelector: String = "#expand_content" + override val genreSelector: String = ".gap-3 .gap-1 a" + + override fun mangaDetailsParse(document: Document): SManga { + return super.mangaDetailsParse(document).apply { + genre = buildList { + document.selectFirst(typeSelector)?.text()?.replaceFirstChar { + if (it.isLowerCase()) { + it.titlecase( + Locale.ENGLISH, + ) + } else { + it.toString() + } + }.let(::add) + document.select(genreSelector).forEach { add(it.text().removeSuffix(",")) } + }.joinToString() + } + } +} diff --git a/src/en/casacomic/src/eu/kanade/tachiyomi/extension/en/casacomic/CasaComic.kt b/src/en/casacomic/src/eu/kanade/tachiyomi/extension/en/casacomic/CasaComic.kt index f521f709b..78e14f75a 100644 --- a/src/en/casacomic/src/eu/kanade/tachiyomi/extension/en/casacomic/CasaComic.kt +++ b/src/en/casacomic/src/eu/kanade/tachiyomi/extension/en/casacomic/CasaComic.kt @@ -11,5 +11,5 @@ class CasaComic : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" } diff --git a/src/en/kaynscans/src/eu/kanade/tachiyomi/extension/en/kaynscans/KaynScans.kt b/src/en/kaynscans/src/eu/kanade/tachiyomi/extension/en/kaynscans/KaynScans.kt index 1b7ab98de..cc6639cac 100644 --- a/src/en/kaynscans/src/eu/kanade/tachiyomi/extension/en/kaynscans/KaynScans.kt +++ b/src/en/kaynscans/src/eu/kanade/tachiyomi/extension/en/kaynscans/KaynScans.kt @@ -11,5 +11,5 @@ class KaynScans : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" } diff --git a/src/en/msytoon/src/eu/kanade/tachiyomi/extension/en/msytoon/MSYToon.kt b/src/en/msytoon/src/eu/kanade/tachiyomi/extension/en/msytoon/MSYToon.kt index ff36fc64a..0f6a6171d 100644 --- a/src/en/msytoon/src/eu/kanade/tachiyomi/extension/en/msytoon/MSYToon.kt +++ b/src/en/msytoon/src/eu/kanade/tachiyomi/extension/en/msytoon/MSYToon.kt @@ -11,5 +11,5 @@ class MSYToon : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" } diff --git a/src/en/nyanukafe/src/eu/kanade/tachiyomi/extension/en/nyanukafe/NyanuKafe.kt b/src/en/nyanukafe/src/eu/kanade/tachiyomi/extension/en/nyanukafe/NyanuKafe.kt index 10938538d..097573af0 100644 --- a/src/en/nyanukafe/src/eu/kanade/tachiyomi/extension/en/nyanukafe/NyanuKafe.kt +++ b/src/en/nyanukafe/src/eu/kanade/tachiyomi/extension/en/nyanukafe/NyanuKafe.kt @@ -11,5 +11,5 @@ class NyanuKafe : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" } diff --git a/src/en/ritharscans/src/eu/kanade/tachiyomi/extension/en/ritharscans/RitharScans.kt b/src/en/ritharscans/src/eu/kanade/tachiyomi/extension/en/ritharscans/RitharScans.kt index f502d4168..30440d4c5 100644 --- a/src/en/ritharscans/src/eu/kanade/tachiyomi/extension/en/ritharscans/RitharScans.kt +++ b/src/en/ritharscans/src/eu/kanade/tachiyomi/extension/en/ritharscans/RitharScans.kt @@ -66,7 +66,7 @@ class RitharScans : Keyoapp("RitharScans", "https://ritharscans.com", "en") { override val descriptionSelector = "#expand_content" override val statusSelector = "[alt=Status]" - override val genreSelector = "[alt=Type]" + override val typeSelector = "[alt=Type]" override fun pageListParse(document: Document): List { val (pages, baseLink) = document.selectFirst("[x-data*=pages]")!!.attr("x-data") diff --git a/src/en/valirscans/src/eu/kanade/tachiyomi/extension/en/valirscans/ValirScans.kt b/src/en/valirscans/src/eu/kanade/tachiyomi/extension/en/valirscans/ValirScans.kt index cbdc81b37..6e7a838ba 100644 --- a/src/en/valirscans/src/eu/kanade/tachiyomi/extension/en/valirscans/ValirScans.kt +++ b/src/en/valirscans/src/eu/kanade/tachiyomi/extension/en/valirscans/ValirScans.kt @@ -11,5 +11,5 @@ class ValirScans : Keyoapp( override val statusSelector: String = "div[alt=Status]" override val authorSelector: String = "div[alt=Author]" override val artistSelector: String = "div[alt=Artist]" - override val genreSelector: String = "div[alt='Series Type']" + override val typeSelector: String = "div[alt='Series Type']" }