From 704f589b6d8cf8797b5241efeb954e1d1a80b941 Mon Sep 17 00:00:00 2001 From: devi Date: Thu, 4 Jan 2024 19:10:22 +0100 Subject: [PATCH] Add new filter on sources Url GekkouScans, SssScanlator Add LunarScan #435 --- .../kotatsu/parsers/site/all/BatoToParser.kt | 2 +- .../parsers/site/all/MangaDexParser.kt | 2 +- .../kotatsu/parsers/site/all/MangaPark.kt | 2 +- .../parsers/site/all/NineMangaParser.kt | 28 ++++++--------- .../kotatsu/parsers/site/ar/FlixScans.kt | 13 ++++++- .../parsers/site/fr/BentomangaParser.kt | 2 +- .../parsers/site/madara/MadaraParser.kt | 24 +++++++++++++ .../parsers/site/madara/all/Manga18Fx.kt | 2 ++ .../parsers/site/madara/all/Manhwa18Cc.kt | 2 ++ .../parsers/site/madara/en/Hentai4Free.kt | 34 +++++++++++++++++-- .../parsers/site/madara/en/InstaManhwa.kt | 3 +- .../parsers/site/madara/en/IsekaiScan.kt | 5 ++- .../site/madara/en/IsekaiScanEuParser.kt | 12 +++++++ .../parsers/site/madara/en/MangaDass.kt | 2 ++ .../parsers/site/madara/en/MangaDna.kt | 3 +- .../parsers/site/madara/en/MangaPure.kt | 4 ++- .../kotatsu/parsers/site/madara/en/Manhwaz.kt | 4 ++- .../site/madara/es/DragonTranslationParser.kt | 4 ++- .../parsers/site/madara/es/TmoManga.kt | 3 +- .../parsers/site/madara/id/ManhwaHub.kt | 3 +- .../parsers/site/madara/pt/GekkouScans.kt | 2 +- .../parsers/site/madara/pt/LunarScan.kt | 12 +++++++ .../parsers/site/madara/vi/Saytruyenhay.kt | 3 +- .../site/mangareader/pt/SssScanlator.kt | 2 +- 24 files changed, 133 insertions(+), 40 deletions(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LunarScan.kt diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt index fac5a58e..3eec956d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/BatoToParser.kt @@ -35,7 +35,7 @@ internal class BatoToParser(context: MangaLoaderContext) : PagedMangaParser( override val availableStates: Set = EnumSet.allOf(MangaState::class.java) - override val isTagsExclusionSupported = true + override val isTagsExclusionSupported: Boolean = true override val availableContentRating: Set = EnumSet.of(ContentRating.SAFE) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt index 70e245df..d7c592d5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaDexParser.kt @@ -35,7 +35,7 @@ internal class MangaDexParser(context: MangaLoaderContext) : MangaParser(context override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED) - override val isTagsExclusionSupported = true + override val isTagsExclusionSupported: Boolean = true override suspend fun getList(offset: Int, filter: MangaListFilter?): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt index e4cdabf0..7905855f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/MangaPark.kt @@ -22,7 +22,7 @@ internal class MangaPark(context: MangaLoaderContext) : override val availableContentRating: Set = EnumSet.of(ContentRating.SAFE) - override val isTagsExclusionSupported = true + override val isTagsExclusionSupported: Boolean = true override val configKeyDomain = ConfigKey.Domain("mangapark.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt index 4ef6b192..4301a9a5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/all/NineMangaParser.kt @@ -40,6 +40,8 @@ internal abstract class NineMangaParser( MangaState.FINISHED, ) + override val isTagsExclusionSupported: Boolean = true + override fun intercept(chain: Interceptor.Chain): Response { val request = chain.request() val newRequest = if (request.url.host == domain) { @@ -64,12 +66,13 @@ internal abstract class NineMangaParser( } is MangaListFilter.Advanced -> { - if (filter.tags.isNotEmpty()) { + + if (filter.tags.isNotEmpty() || filter.tagsExclude.isNotEmpty() || filter.states.isNotEmpty()) { append("/search/?category_id=") - for (tag in filter.tags) { - append(tag.key) - append(',') - } + append(filter.tags.joinToString(separator = ",") { it.key }) + + append("&out_category_id=") + append(filter.tagsExclude.joinToString(separator = ",") { it.key }) filter.states.oneOrThrowIfMany()?.let { append("&completed_series=") @@ -81,20 +84,9 @@ internal abstract class NineMangaParser( } append("&page=") } else { - append("/category/") - if (filter.states.isNotEmpty()) { - filter.states.oneOrThrowIfMany()?.let { - when (it) { - MangaState.ONGOING -> append("updated_") - MangaState.FINISHED -> append("completed_") - else -> append("either") - } - } - } else { - append("index_") - } + append("/category/index_") } - append(page) + append(page.toString()) append(".html") } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/FlixScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/FlixScans.kt index a4491c46..815cbe54 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/FlixScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/FlixScans.kt @@ -20,6 +20,7 @@ internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) override val availableStates: Set = EnumSet.allOf(MangaState::class.java) + override val availableContentRating: Set = EnumSet.of(ContentRating.ADULT) override val configKeyDomain = ConfigKey.Domain("flixscans.com") override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { @@ -40,7 +41,7 @@ internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context append("https://api.") append(domain) append("/api/v1/") - if (filter.tags.isNotEmpty() || filter.states.isNotEmpty()) { + if (filter.tags.isNotEmpty() || filter.states.isNotEmpty() || filter.contentRating.isNotEmpty()) { if (page > 1) { return emptyList() } @@ -64,6 +65,16 @@ internal class FlixScans(context: MangaLoaderContext) : PagedMangaParser(context ) } } + + filter.contentRating.oneOrThrowIfMany()?.let { + append("&adult=") + append( + when (it) { + ContentRating.ADULT -> "true" + else -> "" + }, + ) + } append("&serie_type=webtoon") } else { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/BentomangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/BentomangaParser.kt index f35c8cac..b1b64ddd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/BentomangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/BentomangaParser.kt @@ -32,7 +32,7 @@ internal class BentomangaParser(context: MangaLoaderContext) : PagedMangaParser( override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED) - override val isTagsExclusionSupported = true + override val isTagsExclusionSupported: Boolean = true init { paginator.firstPage = 0 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt index 4cdf67d6..ac77de0c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt @@ -35,6 +35,8 @@ internal abstract class MadaraParser( override val availableStates: Set = EnumSet.allOf(MangaState::class.java) + override val availableContentRating: Set = EnumSet.of(ContentRating.SAFE, ContentRating.ADULT) + protected open val tagPrefix = "manga-genre/" protected open val datePattern = "MMMM d, yyyy" protected open val stylePage = "?style=list" @@ -215,6 +217,18 @@ internal abstract class MadaraParser( MangaState.UPCOMING -> append("upcoming") } } + + filter.contentRating.oneOrThrowIfMany()?.let { + append("&adult=") + append( + when (it) { + ContentRating.SAFE -> "0" + ContentRating.ADULT -> "1" + else -> "" + }, + ) + } + append("&") } @@ -279,6 +293,16 @@ internal abstract class MadaraParser( MangaState.UPCOMING -> "upcoming" } } + + filter.contentRating.oneOrThrowIfMany()?.let { + payload["vars[meta_query][0][1][key]"] = "manga_adult_content" + payload["vars[meta_query][0][1][value]"] = + when (it) { + ContentRating.SAFE -> "" + ContentRating.ADULT -> "a%3A1%3A%7Bi%3A0%3Bs%3A3%3A%22yes%22%3B%7D" + else -> "" + } + } } null -> { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manga18Fx.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manga18Fx.kt index 60451400..9f066899 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manga18Fx.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manga18Fx.kt @@ -25,6 +25,8 @@ internal class Manga18Fx(context: MangaLoaderContext) : searchPaginator.firstPage = 1 } + override val availableContentRating: Set = emptySet() + override val availableStates: Set get() = emptySet() override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt index 8e5ca159..d784353f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/all/Manhwa18Cc.kt @@ -26,6 +26,8 @@ internal class Manhwa18Cc(context: MangaLoaderContext) : searchPaginator.firstPage = 1 } + override val availableContentRating: Set = emptySet() + override val availableStates: Set get() = emptySet() override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai4Free.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai4Free.kt index 815850b1..ee7acf6b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai4Free.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Hentai4Free.kt @@ -3,6 +3,7 @@ package org.koitharu.kotatsu.parsers.site.madara.en import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.model.ContentRating import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaListFilter @@ -23,8 +24,6 @@ internal class Hentai4Free(context: MangaLoaderContext) : override val datePattern = "MMMM dd, yyyy" override val selectGenre = "div.tags-content a" - override val availableStates: Set get() = emptySet() - init { paginator.firstPage = 1 searchPaginator.firstPage = 1 @@ -54,14 +53,41 @@ internal class Hentai4Free(context: MangaLoaderContext) : append("page/") append(page.toString()) } + append("/?") } else { if (page > 1) { append("/page/") append(page.toString()) } + + append("/?s&post_type=wp-manga") + + filter.contentRating.oneOrThrowIfMany()?.let { + append("&adult=") + append( + when (it) { + ContentRating.SAFE -> "0" + ContentRating.ADULT -> "1" + else -> "" + }, + ) + } + + filter.states.forEach { + append("&status[]=") + when (it) { + MangaState.ONGOING -> append("on-going") + MangaState.FINISHED -> append("end") + MangaState.ABANDONED -> append("canceled") + MangaState.PAUSED -> append("on-hold") + MangaState.UPCOMING -> append("upcoming") + } + } + + append("&") } - append("/?m_orderby=") + append("m_orderby=") when (filter.sortOrder) { SortOrder.POPULARITY -> append("views") SortOrder.UPDATED -> append("latest") @@ -70,6 +96,8 @@ internal class Hentai4Free(context: MangaLoaderContext) : SortOrder.RATING -> append("rating") else -> append("latest") } + + } null -> { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt index cde6e581..9ac5467d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/InstaManhwa.kt @@ -16,14 +16,13 @@ internal class InstaManhwa(context: MangaLoaderContext) : override val listUrl = "latest/" override val postReq = true override val datePattern = "d MMMM, yyyy" - override val availableSortOrders: Set = EnumSet.of( SortOrder.ALPHABETICAL, SortOrder.UPDATED, SortOrder.NEWEST, ) - override val availableStates: Set get() = emptySet() + override val availableContentRating: Set = emptySet() init { paginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt index c0a9278f..d04c2290 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScan.kt @@ -16,13 +16,12 @@ internal class IsekaiScan(context: MangaLoaderContext) : override val tagPrefix = "mangas/" override val listUrl = "latest-manga/" override val datePattern = "MMMM d, HH:mm" - override val availableSortOrders: Set = EnumSet.of( SortOrder.POPULARITY, SortOrder.UPDATED, ) - - override val availableStates: Set get() = emptySet() + override val availableContentRating: Set = emptySet() + override val availableStates: Set = emptySet() init { paginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt index d89eb5cc..ae66efdd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/IsekaiScanEuParser.kt @@ -64,6 +64,18 @@ internal class IsekaiScanEuParser(context: MangaLoaderContext) : MangaState.UPCOMING -> append("upcoming") } } + + filter.contentRating.oneOrThrowIfMany()?.let { + append("&adult=") + append( + when (it) { + ContentRating.SAFE -> "0" + ContentRating.ADULT -> "1" + else -> "" + }, + ) + } + append("&") } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt index d32a89e2..95405107 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDass.kt @@ -21,6 +21,8 @@ internal class MangaDass(context: MangaLoaderContext) : override val availableStates: Set get() = emptySet() + override val availableContentRating: Set = emptySet() + init { paginator.firstPage = 1 searchPaginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt index e3416f46..84d56d17 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaDna.kt @@ -18,7 +18,8 @@ internal class MangaDna(context: MangaLoaderContext) : override val withoutAjax = true override val selectDesc = "div.dsct" override val selectChapter = "li.a-h" - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + override val availableContentRating: Set = emptySet() override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaPure.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaPure.kt index 6277b7ce..64dda2fd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaPure.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/MangaPure.kt @@ -21,7 +21,9 @@ internal class MangaPure(context: MangaLoaderContext) : SortOrder.UPDATED, ) - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + + override val availableContentRating: Set = emptySet() init { paginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt index 4e8bc2fe..4a118380 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/en/Manhwaz.kt @@ -16,7 +16,9 @@ internal class Manhwaz(context: MangaLoaderContext) : override val withoutAjax = true override val selectTestAsync = "div.list-chapter" - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + + override val availableContentRating: Set = emptySet() override val availableSortOrders: Set = EnumSet.of( SortOrder.UPDATED, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/DragonTranslationParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/DragonTranslationParser.kt index b86bcbb8..e15dccfa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/DragonTranslationParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/DragonTranslationParser.kt @@ -2,6 +2,7 @@ package org.koitharu.kotatsu.parsers.site.madara.es import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.model.ContentRating import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.parsers.model.MangaListFilter import org.koitharu.kotatsu.parsers.model.MangaSource @@ -16,7 +17,8 @@ internal class DragonTranslationParser(context: MangaLoaderContext) : MadaraParser(context, MangaSource.DRAGONTRANSLATION, "dragontranslation.net", 30) { override val selectPage = "div#chapter_imgs img" override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + override val availableContentRating: Set = emptySet() init { paginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt index 1ec9a6df..e1e29d31 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/es/TmoManga.kt @@ -17,7 +17,8 @@ internal class TmoManga(context: MangaLoaderContext) : override val selectGenre = "div.summary-content a.tags_manga" override val withoutAjax = true override val availableSortOrders: Set = EnumSet.of(SortOrder.POPULARITY) - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + override val availableContentRating: Set = emptySet() init { paginator.firstPage = 1 diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaHub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaHub.kt index a4c1991f..b704c822 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaHub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/id/ManhwaHub.kt @@ -17,7 +17,8 @@ internal class ManhwaHub(context: MangaLoaderContext) : override val withoutAjax = true override val listUrl = "genre/manhwa" override val selectTestAsync = "ul.box-list-chapter" - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + override val availableContentRating: Set = emptySet() override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) init { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/GekkouScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/GekkouScans.kt index fe4ed668..9e91a1d8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/GekkouScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/GekkouScans.kt @@ -9,6 +9,6 @@ import java.util.Locale @MangaSourceParser("GEKKOUSCANS", "GekkouScans", "pt", ContentType.HENTAI) internal class GekkouScans(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.GEKKOUSCANS, "gekkouscans.top") { + MadaraParser(context, MangaSource.GEKKOUSCANS, "gekkou.site") { override val sourceLocale: Locale = Locale.ENGLISH } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LunarScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LunarScan.kt new file mode 100644 index 00000000..cf2fa876 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LunarScan.kt @@ -0,0 +1,12 @@ +package org.koitharu.kotatsu.parsers.site.madara.pt + +import org.koitharu.kotatsu.parsers.MangaLoaderContext +import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.parsers.site.madara.MadaraParser + +@MangaSourceParser("LUNARSCAN", "LunarScan", "pt") +internal class LunarScan(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.LUNARSCAN, "lunarscan.com.br") { + override val listUrl = "obra/" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt index cfbb886f..6441cfa2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/Saytruyenhay.kt @@ -16,7 +16,8 @@ internal class Saytruyenhay(context: MangaLoaderContext) : override val tagPrefix = "genre/" override val withoutAjax = true override val listUrl = "public/genre/manga/" - override val availableStates: Set get() = emptySet() + override val availableStates: Set = emptySet() + override val availableContentRating: Set = emptySet() override val availableSortOrders: Set = EnumSet.of(SortOrder.POPULARITY, SortOrder.UPDATED, SortOrder.RATING, SortOrder.NEWEST) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt index d14bf6fb..1f41afb1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/SssScanlator.kt @@ -7,4 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SSSSCANLATOR", "SssScanlator", "pt") internal class SssScanlator(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SSSSCANLATOR, "sssscanlator.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SSSSCANLATOR, "sssscanlator.com.br", pageSize = 20, searchPageSize = 10)