From 6dc0e12fb0631bd90a1a7781dfaf6a365814cc0b Mon Sep 17 00:00:00 2001 From: devi Date: Sun, 7 Jan 2024 14:50:16 +0100 Subject: [PATCH] add filter on sources Remove Komikgo redirect to ManhwaLand Add Template PizzaReaderParser and move FmTeam Add PhoenixScans, TuttoAnimeManga, LupiTeam, LadyEstelarScan, GtoTheGreatSite --- .../kotatsu/parsers/site/ar/TeamXNovel.kt | 2 +- .../kotatsu/parsers/site/en/Manhwa18Parser.kt | 9 ++ .../parsers/site/es/TuMangaOnlineParser.kt | 13 +++ .../parsers/site/fmreader/FmreaderParser.kt | 5 + .../parsers/site/fmreader/en/Manhwa18Com.kt | 9 +- .../parsers/site/fmreader/es/OlimpoScans.kt | 1 + .../parsers/site/fr/LegacyScansParser.kt | 17 ++- .../parsers/site/madara/pt/LadyestelarScan.kt | 12 ++ .../parsers/site/madara/pt/LunarScan.kt | 2 +- .../{mangareader => madara}/tr/MajorScans.kt | 8 +- .../parsers/site/madara/vi/HentaiCube.kt | 2 +- .../parsers/site/mangabox/MangaboxParser.kt | 11 ++ .../parsers/site/mangabox/en/Mangairo.kt | 1 + .../parsers/site/mangabox/en/Mangakakalot.kt | 1 + .../site/mangabox/en/MangakakalotTv.kt | 1 + .../site/mangareader/MangaReaderParser.kt | 20 +++- .../parsers/site/mangareader/ar/AreaScans.kt | 4 +- .../parsers/site/mangareader/ar/AresManga.kt | 1 + .../parsers/site/mangareader/ar/BeastScans.kt | 4 +- .../parsers/site/mangareader/ar/Eliton.kt | 4 +- .../site/mangareader/ar/EnAresManga.kt | 1 + .../site/mangareader/ar/PotatoManga.kt | 1 + .../parsers/site/mangareader/ar/SwaTeam.kt | 1 + .../parsers/site/mangareader/ar/VexManga.kt | 1 + .../parsers/site/mangareader/en/AgsComics.kt | 1 + .../site/mangareader/en/AnigliScans.kt | 1 + .../site/mangareader/en/AscalonScans.kt | 4 +- .../parsers/site/mangareader/en/AstraScans.kt | 4 +- .../site/mangareader/en/AsuraScansParser.kt | 1 + .../parsers/site/mangareader/en/BirdManga.kt | 1 + .../site/mangareader/en/Constellarcomic.kt | 1 + .../site/mangareader/en/CosmicScansParser.kt | 1 + .../parsers/site/mangareader/en/FreakComic.kt | 4 +- .../parsers/site/mangareader/en/FreakScans.kt | 1 + .../parsers/site/mangareader/en/KaiScans.kt | 1 + .../site/mangareader/en/KomikLabParser.kt | 1 + .../parsers/site/mangareader/en/LightScans.kt | 4 +- .../site/mangareader/en/LuminousScans.kt | 1 + .../parsers/site/mangareader/en/LunarScan.kt | 3 +- .../site/mangareader/en/ManhwaFreak.kt | 1 + .../site/mangareader/en/ManhwaLover.kt | 1 + .../parsers/site/mangareader/en/Manhwax.kt | 1 + .../parsers/site/mangareader/en/Manjanoon.kt | 4 +- .../parsers/site/mangareader/en/Nightscans.kt | 1 + .../parsers/site/mangareader/en/RavenScans.kt | 1 + .../site/mangareader/en/ReadersPoint.kt | 1 + .../parsers/site/mangareader/en/Readkomik.kt | 1 + .../parsers/site/mangareader/en/RizzComic.kt | 1 + .../parsers/site/mangareader/en/SuryaScans.kt | 4 +- .../parsers/site/mangareader/en/VoidScans.kt | 1 + .../site/mangareader/en/XCalibrScans.kt | 4 +- .../parsers/site/mangareader/en/Zahard.kt | 1 + .../site/mangareader/es/GremoryMangas.kt | 4 +- .../parsers/site/mangareader/es/InariManga.kt | 4 +- .../parsers/site/mangareader/es/NekoScans.kt | 1 + .../parsers/site/mangareader/es/RagnaScan.kt | 4 +- .../site/mangareader/es/Shadowmangas.kt | 2 +- .../parsers/site/mangareader/es/SkyMangas.kt | 1 + .../parsers/site/mangareader/es/TecnoScann.kt | 4 +- .../parsers/site/mangareader/es/TenkaiScan.kt | 1 + .../mangareader/es/TraduccionesMoonlight.kt | 4 +- .../parsers/site/mangareader/es/Tresdaos.kt | 4 +- .../parsers/site/mangareader/es/TuManhwas.kt | 1 + .../site/mangareader/fr/EpsilonscanParser.kt | 4 +- .../parsers/site/mangareader/fr/GloryScans.kt | 4 +- .../site/mangareader/fr/PhenixscansParser.kt | 1 + .../parsers/site/mangareader/fr/VfScan.kt | 4 +- .../parsers/site/mangareader/id/AinzScans.kt | 1 + .../parsers/site/mangareader/id/Comicaso.kt | 1 + .../site/mangareader/id/CosmicScans.kt | 49 +-------- .../parsers/site/mangareader/id/Dojing.kt | 1 + .../site/mangareader/id/DoujinDesuRip.kt | 4 +- .../parsers/site/mangareader/id/DoujinKu.kt | 1 + .../parsers/site/mangareader/id/Futari.kt | 4 +- .../parsers/site/mangareader/id/Kanzenin.kt | 4 +- .../parsers/site/mangareader/id/KataKomik.kt | 1 + .../site/mangareader/id/KiryuuParser.kt | 4 +- .../site/mangareader/id/KomikAvParser.kt | 4 +- .../site/mangareader/id/KomikDewasa.kt | 1 + .../site/mangareader/id/KomikDewasaParser.kt | 1 + .../site/mangareader/id/KomikIndoParser.kt | 1 + .../parsers/site/mangareader/id/KomikSan.kt | 1 + .../parsers/site/mangareader/id/KomikSay.kt | 1 + .../site/mangareader/id/KomikTapParser.kt | 1 + .../parsers/site/mangareader/id/Komikcast.kt | 1 + .../site/mangareader/id/KomikgoParser.kt | 12 -- .../site/mangareader/id/Komikstation.kt | 1 + .../parsers/site/mangareader/id/Komiku.kt | 1 + .../parsers/site/mangareader/id/Lianscans.kt | 1 - .../parsers/site/mangareader/id/MangaShiro.kt | 1 + .../site/mangareader/id/MangaTaleParser.kt | 1 + .../parsers/site/mangareader/id/MangakKita.kt | 1 + .../parsers/site/mangareader/id/Mangakyo.kt | 1 + .../site/mangareader/id/ManhwaIndoParser.kt | 2 +- .../parsers/site/mangareader/id/ManhwaLand.kt | 4 +- .../parsers/site/mangareader/id/ManhwaPlus.kt | 1 + .../site/mangareader/id/ManhwadesuParser.kt | 3 +- .../parsers/site/mangareader/id/Natsu.kt | 4 +- .../parsers/site/mangareader/id/Noromax.kt | 1 + .../site/mangareader/id/SekaikomikParser.kt | 4 +- .../site/mangareader/id/Sektedoujin.kt | 1 + .../parsers/site/mangareader/id/Sheakomik.kt | 1 + .../parsers/site/mangareader/id/Shirakami.kt | 1 + .../parsers/site/mangareader/id/SirenKomik.kt | 4 +- .../parsers/site/mangareader/id/SoulScans.kt | 1 + .../site/mangareader/id/Tukangkomik.kt | 1 + .../site/mangareader/id/WarungKomik.kt | 4 +- .../site/mangareader/id/WestmangaParser.kt | 1 + .../parsers/site/mangareader/id/YuriLab.kt | 1 + .../site/mangareader/it/Walpurgiscan.kt | 1 + .../parsers/site/mangareader/it/WitComics.kt | 4 +- .../parsers/site/mangareader/ja/MangaJp.kt | 1 + .../parsers/site/mangareader/ja/MangaMate.kt | 1 + .../parsers/site/mangareader/ja/Rawkuma.kt | 1 + .../site/mangareader/pl/SkanlacjeFeniksy.kt | 1 + .../site/mangareader/pt/FranxxMangas.kt | 1 + .../parsers/site/mangareader/pt/MangasChan.kt | 2 - .../site/mangareader/pt/MangasOnline.kt | 4 +- .../site/mangareader/pt/SssScanlator.kt | 4 +- .../parsers/site/mangareader/pt/Tsundoku.kt | 1 + .../parsers/site/mangareader/th/Doujin69.kt | 1 + .../parsers/site/mangareader/th/InuManga.kt | 4 +- .../parsers/site/mangareader/th/LamiManga.kt | 4 +- .../parsers/site/mangareader/th/MafiaManga.kt | 4 +- .../parsers/site/mangareader/th/Manga168.kt | 4 +- .../parsers/site/mangareader/th/Manga689.kt | 5 +- .../parsers/site/mangareader/th/MangaMoons.kt | 4 +- .../parsers/site/mangareader/th/PopsManga.kt | 4 +- .../parsers/site/mangareader/th/Sodsaime.kt | 4 +- .../parsers/site/mangareader/th/ThaiManga.kt | 4 +- .../site/mangareader/th/ToomtamManga.kt | 4 +- .../site/mangareader/th/ToonHunterParser.kt | 2 +- .../site/mangareader/tr/AdonisFansub.kt | 4 +- .../site/mangareader/tr/AfroditScans.kt | 1 + .../site/mangareader/tr/ArcuraFansub.kt | 1 + .../site/mangareader/tr/AsuraTRParser.kt | 4 +- .../parsers/site/mangareader/tr/Ayatoon.kt | 4 +- .../site/mangareader/tr/Golgebahcesi.kt | 4 +- .../site/mangareader/tr/MangaGezgini.kt | 4 +- .../parsers/site/mangareader/tr/MangaKings.kt | 4 +- .../site/mangareader/tr/Mangaefendisi.kt | 4 +- .../site/mangareader/tr/MerlinScans.kt | 4 +- .../parsers/site/mangareader/tr/MilaSub.kt | 4 +- .../site/mangareader/tr/MoonDaisyScans.kt | 4 +- .../site/mangareader/tr/NirvanaManga.kt | 4 +- .../parsers/site/mangareader/tr/NyxManga.kt | 4 +- .../parsers/site/mangareader/tr/PatiManga.kt | 4 +- .../site/mangareader/tr/Raindropteamfan.kt | 4 +- .../parsers/site/mangareader/tr/RobinManga.kt | 4 +- .../parsers/site/mangareader/tr/SummerToon.kt | 4 +- .../parsers/site/mangareader/tr/TarotScans.kt | 4 +- .../mangareader/tr/TempestfansubParser.kt | 4 +- .../parsers/site/nepnep/NepnepParser.kt | 14 ++- .../PizzaReaderParser.kt} | 104 +++++++++++++++--- .../parsers/site/pizzareader/fr/FmTeam.kt | 13 +++ .../site/pizzareader/it/GtoTheGreatSite.kt | 10 ++ .../parsers/site/pizzareader/it/LupiTeam.kt | 10 ++ .../site/pizzareader/it/PhoenixScans.kt | 10 ++ .../site/pizzareader/it/TuttoAnimeManga.kt | 12 ++ .../es/AiyuMangaScanlation.kt | 8 +- 160 files changed, 515 insertions(+), 164 deletions(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LadyestelarScan.kt rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{mangareader => madara}/tr/MajorScans.kt (53%) delete mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikgoParser.kt rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{fr/FmTeam.kt => pizzareader/PizzaReaderParser.kt} (64%) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/fr/FmTeam.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/GtoTheGreatSite.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/LupiTeam.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/PhoenixScans.kt create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/TuttoAnimeManga.kt rename src/main/kotlin/org/koitharu/kotatsu/parsers/site/{mangareader => zeistmanga}/es/AiyuMangaScanlation.kt (52%) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt index f7a7e334a..4f790c918 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ar/TeamXNovel.kt @@ -20,7 +20,7 @@ internal class TeamXNovel(context: MangaLoaderContext) : PagedMangaParser(contex override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.ABANDONED) - override val configKeyDomain = ConfigKey.Domain("team11x11.fun") + override val configKeyDomain = ConfigKey.Domain("team1x12.com") override val isMultipleTagsSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manhwa18Parser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manhwa18Parser.kt index 2e2b26344..bab5242ba 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manhwa18Parser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/en/Manhwa18Parser.kt @@ -30,6 +30,8 @@ class Manhwa18Parser(context: MangaLoaderContext) : MangaState.PAUSED, ) + override val isTagsExclusionSupported = true + private val tagsMap = SuspendLazy(::parseTags) override suspend fun getFavicons(): Favicons { @@ -64,6 +66,13 @@ class Manhwa18Parser(context: MangaLoaderContext) : ) } + append("&reject_genres=") + if (filter.tagsExclude.isNotEmpty()) { + append( + filter.tagsExclude.joinToString(",") { it.key }, + ) + } + append("&sort=") append( when (filter.sortOrder) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt index 3a0c64bd9..74a29b1ad 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/es/TuMangaOnlineParser.kt @@ -24,6 +24,8 @@ class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( private val chapterDateFormat = SimpleDateFormat("yyyy-MM-dd", sourceLocale) + override val availableContentRating: Set = EnumSet.of(ContentRating.SAFE, ContentRating.ADULT) + override val availableSortOrders: Set = EnumSet.of( SortOrder.ALPHABETICAL, SortOrder.ALPHABETICAL_DESC, @@ -64,6 +66,17 @@ class TuMangaOnlineParser(context: MangaLoaderContext) : PagedMangaParser( append(tag.key) } } + + filter.contentRating.oneOrThrowIfMany()?.let { + append("&erotic=") + append( + when (it) { + ContentRating.SAFE -> "false" + ContentRating.ADULT -> "true" + else -> "" + }, + ) + } } null -> { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt index 1ae781319..d7b77372c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/FmreaderParser.kt @@ -34,6 +34,8 @@ internal abstract class FmreaderParser( MangaState.ABANDONED, ) + override val isTagsExclusionSupported = true + protected open val listUrl = "/manga-list.html" protected open val datePattern = "MMMM d, yyyy" protected open val tagPrefix = "manga-list-genre-" @@ -81,6 +83,9 @@ internal abstract class FmreaderParser( append("&genre=") append(filter.tags.joinToString(",") { it.key }) + append("&ungenre=") + append(filter.tagsExclude.joinToString(",") { it.key }) + append("&sort=") when (filter.sortOrder) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt index d2c963f43..f57b11478 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/en/Manhwa18Com.kt @@ -38,11 +38,10 @@ internal class Manhwa18Com(context: MangaLoaderContext) : is MangaListFilter.Advanced -> { append("&accept_genres=") - if (filter.tags.isNotEmpty()) { - append( - filter.tags.joinToString(",") { it.key }, - ) - } + append(filter.tags.joinToString(",") { it.key }) + + append("&reject_genres=") + append(filter.tagsExclude.joinToString(",") { it.key }) append("&sort=") append( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/es/OlimpoScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/es/OlimpoScans.kt index 5c8521b5d..d81619bdb 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/es/OlimpoScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/es/OlimpoScans.kt @@ -15,6 +15,7 @@ internal class OlimpoScans(context: MangaLoaderContext) : override val selectTag = "ul.manga-info li:contains(Género) a" override val tagPrefix = "lista-de-comics-genero-" override val isMultipleTagsSupported = false + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/LegacyScansParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/LegacyScansParser.kt index 3817021d8..73890a17d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/LegacyScansParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/LegacyScansParser.kt @@ -19,6 +19,9 @@ internal class LegacyScansParser(context: MangaLoaderContext) : override val availableSortOrders: Set = EnumSet.of(SortOrder.POPULARITY) + override val availableStates: Set = + EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.ABANDONED, MangaState.PAUSED) + override val configKeyDomain = ConfigKey.Domain("legacy-scans.com") override val headers: Headers = Headers.Builder() @@ -45,7 +48,19 @@ internal class LegacyScansParser(context: MangaLoaderContext) : val url = buildString { append("https://api.") append(domain) - append("/misc/comic/search/query?status=&order=&genreNames=") + append("/misc/comic/search/query?status=") + filter.states.oneOrThrowIfMany()?.let { + append( + when (it) { + MangaState.ONGOING -> "En cours" + MangaState.FINISHED -> "Terminé" + MangaState.ABANDONED -> "Abandonné" + MangaState.PAUSED -> "En pause" + else -> "" + }, + ) + } + append("&order=&genreNames=") append(filter.tags.joinToString(",") { it.key }) append("&type=&start=") append(start) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LadyestelarScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LadyestelarScan.kt new file mode 100644 index 000000000..df95e73ab --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/pt/LadyestelarScan.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("LADYESTELARSCAN", "LadyEstelarScan", "pt") +internal class LadyestelarScan(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.LADYESTELARSCAN, "ladyestelarscan.com.br", 10) { + override val datePattern: String = "dd/MM/yyyy" +} 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 index cf2fa8766..ee612055c 100644 --- 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 @@ -5,7 +5,7 @@ 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") +@MangaSourceParser("LUNARSCAN", "LunarScan.com.br", "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/mangareader/tr/MajorScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MajorScans.kt similarity index 53% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MajorScans.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MajorScans.kt index b6d099cab..e538cb983 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MajorScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/tr/MajorScans.kt @@ -1,10 +1,12 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.tr +package org.koitharu.kotatsu.parsers.site.madara.tr 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.mangareader.MangaReaderParser +import org.koitharu.kotatsu.parsers.site.madara.MadaraParser @MangaSourceParser("MAJORSCANS", "MajorScans", "tr") internal class MajorScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MAJORSCANS, "www.majorscans.com", pageSize = 20, searchPageSize = 25) + MadaraParser(context, MangaSource.MAJORSCANS, "www.majorscans.com", pageSize = 18) { + override val datePattern = "dd/MM/yyyy" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/HentaiCube.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/HentaiCube.kt index 01073fcd6..958260232 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/HentaiCube.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/vi/HentaiCube.kt @@ -12,7 +12,7 @@ import org.koitharu.kotatsu.parsers.util.* @MangaSourceParser("HENTAICUBE", "HentaiCube", "vi", ContentType.HENTAI) internal class HentaiCube(context: MangaLoaderContext) : - MadaraParser(context, MangaSource.HENTAICUBE, "hentaicube.net") { + MadaraParser(context, MangaSource.HENTAICUBE, "cbhentai.net") { override val datePattern = "dd/MM/yyyy" override val tagPrefix = "the-loai/" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/MangaboxParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/MangaboxParser.kt index f0f5383f0..af80b5025 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/MangaboxParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/MangaboxParser.kt @@ -26,6 +26,8 @@ internal abstract class MangaboxParser( override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED) + override val isTagsExclusionSupported = true + protected open val listUrl = "/advanced_search" protected open val searchUrl = "/search/story/" protected open val datePattern = "MMM dd,yy" @@ -71,6 +73,15 @@ internal abstract class MangaboxParser( } } + if (filter.tagsExclude.isNotEmpty()) { + append("&g_e=") + filter.tagsExclude.forEach { + append("_") + append(it.key) + append("_") + } + } + filter.states.oneOrThrowIfMany()?.let { append("&sts=") append( diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangairo.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangairo.kt index 70241a79b..5c1f6cede 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangairo.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangairo.kt @@ -37,6 +37,7 @@ internal class Mangairo(context: MangaLoaderContext) : SortOrder.POPULARITY, SortOrder.NEWEST, ) + override val isTagsExclusionSupported = false override val isMultipleTagsSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangakakalot.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangakakalot.kt index ec3c171ae..d052a289e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangakakalot.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/Mangakakalot.kt @@ -19,6 +19,7 @@ internal class Mangakakalot(context: MangaLoaderContext) : SortOrder.POPULARITY, SortOrder.NEWEST, ) + override val isTagsExclusionSupported = false override val isMultipleTagsSupported = false override val otherDomain = "chapmanganato.com" override val listUrl = "/manga_list" diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt index 0affb7364..061a0736f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangabox/en/MangakakalotTv.kt @@ -23,6 +23,7 @@ internal class MangakakalotTv(context: MangaLoaderContext) : SortOrder.NEWEST, ) override val isMultipleTagsSupported = false + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt index 67e2317f7..e94c76c9c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/MangaReaderParser.kt @@ -41,6 +41,8 @@ internal abstract class MangaReaderParser( override val availableStates: Set get() = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED) + override val isTagsExclusionSupported = true + protected open val listUrl = "/manga" protected open val datePattern = "MMMM d, yyyy" protected open val isNetShieldProtected = false @@ -77,11 +79,19 @@ internal abstract class MangaReaderParser( }, ) - val tagKey = "genre[]".urlEncoded() - val tagQuery = - if (filter.tags.isEmpty()) "" - else filter.tags.joinToString(separator = "&", prefix = "&") { "$tagKey=${it.key}" } - append(tagQuery) + filter.tags.forEach { + append("&") + append("genre[]".urlEncoded()) + append("=") + append(it.key) + } + + filter.tagsExclude.forEach { + append("&") + append("genre[]".urlEncoded()) + append("=-") + append(it.key) + } if (filter.states.isNotEmpty()) { filter.states.oneOrThrowIfMany()?.let { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AreaScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AreaScans.kt index 3e686ece3..8c68cae70 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AreaScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AreaScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("AREASCANS", "AreaScans", "ar") internal class AreaScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.AREASCANS, "www.areascans.net", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.AREASCANS, "www.areascans.net", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AresManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AresManga.kt index 5b43fdf09..40f6cf39a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AresManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/AresManga.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class AresManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ARESMANGA, "aresnov.org", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/BeastScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/BeastScans.kt index 96bd0c65e..154977fc4 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/BeastScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/BeastScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("BEASTSCANS", "BeastScans", "ar") internal class BeastScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.BEASTSCANS, "beastscans.net", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.BEASTSCANS, "beastscans.net", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Eliton.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Eliton.kt index 5b99482b8..7c069e068 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Eliton.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/Eliton.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ELITON", "Eliton", "ar") internal class Eliton(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ELITON, "eliton.lol", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.ELITON, "eliton.lol", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/EnAresManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/EnAresManga.kt index 79bdd619d..5bdacc065 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/EnAresManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/EnAresManga.kt @@ -10,4 +10,5 @@ internal class EnAresManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ENARESMANGA, "en-aresmanga.com", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" override val encodedSrc = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt index e37f4adc8..745f7840e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/PotatoManga.kt @@ -14,6 +14,7 @@ import java.util.ArrayList internal class PotatoManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.POTATOMANGA, "potatomanga.xyz", pageSize = 30, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false override suspend fun getPages(chapter: MangaChapter): List { val chapterUrl = chapter.url.toAbsoluteUrl(domain) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/SwaTeam.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/SwaTeam.kt index 0a0557300..a6dddc8ee 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/SwaTeam.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/SwaTeam.kt @@ -16,6 +16,7 @@ internal class SwaTeam(context: MangaLoaderContext) : override val selectMangaList = ".listupd .bs .bsx" override val selectMangaListImg = "img" override val isNetShieldProtected = true + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/VexManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/VexManga.kt index 97779f853..f87e7af29 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/VexManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ar/VexManga.kt @@ -14,6 +14,7 @@ internal class VexManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.VEXMANGA, "vexmanga.com", pageSize = 10, searchPageSize = 10) { override val selectMangaList = ".listarchives .latest-recom" override val selectChapter = ".ulChapterList > a" + override val isTagsExclusionSupported = false override suspend fun getDetails(manga: Manga): Manga { val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml() diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AgsComics.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AgsComics.kt index e7d8ecaac..d0f660eb4 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AgsComics.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AgsComics.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class AgsComics(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.AGSCOMICS, "agscomics.com", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AnigliScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AnigliScans.kt index 12f91aaa0..5b7342dc2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AnigliScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AnigliScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class AnigliScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ANIGLISCANS, "anigliscans.xyz", pageSize = 47, searchPageSize = 47) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AscalonScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AscalonScans.kt index 8718a83d0..22dc1a4ee 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AscalonScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AscalonScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ASCALONSCANS", "AscalonScans", "en") internal class AscalonScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ASCALONSCANS, "ascalonscans.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.ASCALONSCANS, "ascalonscans.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AstraScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AstraScans.kt index 5017d0e00..f3d2c3914 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AstraScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AstraScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ASTRASCANS", "AstraScans", "en") internal class AstraScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ASTRASCANS, "astrascans.com", pageSize = 30, searchPageSize = 10) + MangaReaderParser(context, MangaSource.ASTRASCANS, "astrascans.com", pageSize = 30, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AsuraScansParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AsuraScansParser.kt index 0fbca994a..5b89a08d8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AsuraScansParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/AsuraScansParser.kt @@ -10,4 +10,5 @@ internal class AsuraScansParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ASURASCANS, "asuratoon.com", pageSize = 20, searchPageSize = 10) { override val selectPage = "#readerarea img:not(.asurascans)" override val selectTestScript = "force html" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/BirdManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/BirdManga.kt index ae2fd67eb..bdc26ee72 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/BirdManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/BirdManga.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class BirdManga(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.BIRDMANGA, "birdmanga.com", pageSize = 20, searchPageSize = 10) { override val encodedSrc = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt index 9a6636819..c0bf3fd94 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Constellarcomic.kt @@ -10,6 +10,7 @@ import org.koitharu.kotatsu.parsers.util.* internal class Constellarcomic(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.CONSTELLARCOMIC, "constellarcomic.com", pageSize = 30, searchPageSize = 18) { override val selectTestScript = "script:containsData(ts_rea_der_._run)" + override val isTagsExclusionSupported = false override suspend fun getDetails(manga: Manga): Manga { val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml() diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt index fba9437a6..9e639f328 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/CosmicScansParser.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class CosmicScansParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.COSMICSCANS, "cosmic-scans.com", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakComic.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakComic.kt index fbbb4cf50..87f19038f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakComic.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakComic.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("FREAKCOMIC", "FreakComic", "en") internal class FreakComic(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.FREAKCOMIC, "freakcomic.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakScans.kt index 016063af1..f02dffa33 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/FreakScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class FreakScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.FREAKSCANS, "freakscans.com", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt index dd936eb83..bcf6d3216 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KaiScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class KaiScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KAISCANS, "kaiscans.com", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KomikLabParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KomikLabParser.kt index 8eea33492..abe683733 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KomikLabParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/KomikLabParser.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class KomikLabParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKLAB, "komiklab.com", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LightScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LightScans.kt index 9a8f4da02..71a03f6c2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LightScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LightScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("LIGHTSCANS", "LightScans", "en") internal class LightScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.LIGHTSCANS, "lightscans.fun", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.LIGHTSCANS, "lightscans.fun", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LuminousScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LuminousScans.kt index 2c3e1aab9..dc39d32a6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LuminousScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LuminousScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class LuminousScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.LUMINOUSSCANS, "luminousscans.net", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LunarScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LunarScan.kt index 3b1e566d4..71a7c6360 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LunarScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/LunarScan.kt @@ -6,8 +6,9 @@ import org.koitharu.kotatsu.parsers.model.ContentType import org.koitharu.kotatsu.parsers.model.MangaSource import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser -@MangaSourceParser("LUNAR_SCAN", "LunarScan", "en", ContentType.HENTAI) +@MangaSourceParser("LUNAR_SCAN", "LunarScan.org", "en", ContentType.HENTAI) internal class LunarScan(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.LUNAR_SCAN, "lunarscan.org", pageSize = 20, searchPageSize = 20) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt index 1c9ba41c2..988e6b4ff 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaFreak.kt @@ -19,6 +19,7 @@ internal class ManhwaFreak(context: MangaLoaderContext) : override val selectMangaListImg = "img" override val availableStates: Set = emptySet() override val isMultipleTagsSupported = false + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaLover.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaLover.kt index b6e2f581b..5c0b7b6f7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaLover.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ManhwaLover.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class ManhwaLover(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWALOVER, "www.manhwalover.com", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manhwax.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manhwax.kt index 39cc52449..dc92cf66b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manhwax.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manhwax.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Manhwax(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWAX, "manhwax.org", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt index 837f8352d..2db6792a3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Manjanoon.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANJANOON_EN", "Manjanoon.net", "en") internal class Manjanoon(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANJANOON_EN, "manjanoon.net", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANJANOON_EN, "manjanoon.net", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Nightscans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Nightscans.kt index 6c51ed39b..d1b3b53bb 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Nightscans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Nightscans.kt @@ -10,4 +10,5 @@ internal class Nightscans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.NIGHTSCANS, "nightscans.net", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" override val selectMangaListImg = "img.ts-post-image, picture img" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RavenScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RavenScans.kt index d623ed6fe..28fd53b8a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RavenScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RavenScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class RavenScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.RAVENSCANS, "ravenscans.com", pageSize = 10, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ReadersPoint.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ReadersPoint.kt index c7edb24de..696caab3a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ReadersPoint.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/ReadersPoint.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class ReadersPoint(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.READERSPOINT, "readers-point.space", pageSize = 20, searchPageSize = 10) { override val listUrl = "/series" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Readkomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Readkomik.kt index 87e97e145..27ecfe51d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Readkomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Readkomik.kt @@ -9,5 +9,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Readkomik(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.READKOMIK, "readkomik.com", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RizzComic.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RizzComic.kt index 3c675e90e..174f9d28b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RizzComic.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/RizzComic.kt @@ -20,6 +20,7 @@ internal class RizzComic(context: MangaLoaderContext) : override val availableStates: Set = emptySet() override val isMultipleTagsSupported = false override val isSearchSupported = false + override val isTagsExclusionSupported = false // TODO Query created in json override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt index 4e44a9adb..ef0edfa4e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/SuryaScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SURYASCANS", "SuryaScans", "en") internal class SuryaScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SURYASCANS, "suryacomics.com", pageSize = 5, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SURYASCANS, "suryacomics.com", pageSize = 5, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/VoidScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/VoidScans.kt index a4524bfd5..f4c59f0e5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/VoidScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/VoidScans.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class VoidScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.VOIDSCANS, "void-scans.com", pageSize = 150, searchPageSize = 150) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/XCalibrScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/XCalibrScans.kt index 4bc4034e6..c1d45ed43 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/XCalibrScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/XCalibrScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("XCALIBRSCANS", "XCalibrScans", "en") internal class XCalibrScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.XCALIBRSCANS, "xcalibrscans.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.XCALIBRSCANS, "xcalibrscans.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Zahard.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Zahard.kt index 7d57f9a9b..97292a2d6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Zahard.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/en/Zahard.kt @@ -24,6 +24,7 @@ internal class Zahard(context: MangaLoaderContext) : override val availableSortOrders: Set = EnumSet.of(SortOrder.NEWEST) override val availableStates: Set = emptySet() override val isMultipleTagsSupported = false + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/GremoryMangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/GremoryMangas.kt index d70b8d98e..77d85d70e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/GremoryMangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/GremoryMangas.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("GREMORYMANGAS", "GremoryMangas", "es") internal class GremoryMangas(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.GREMORYMANGAS, "gremorymangas.com", pageSize = 20, searchPageSize = 20) + MangaReaderParser(context, MangaSource.GREMORYMANGAS, "gremorymangas.com", pageSize = 20, searchPageSize = 20) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/InariManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/InariManga.kt index 92b554fb5..d15a0ec74 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/InariManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/InariManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("INARIMANGA", "InariManga", "es") internal class InariManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.INARIMANGA, "inarimanga.net", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.INARIMANGA, "inarimanga.net", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/NekoScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/NekoScans.kt index d566aa04f..7852b9dbf 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/NekoScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/NekoScans.kt @@ -10,4 +10,5 @@ internal class NekoScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.NEKOSCANS, "nekoscans.com", pageSize = 20, searchPageSize = 10) { override val listUrl = "/proyecto" override val encodedSrc = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/RagnaScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/RagnaScan.kt index 6c5cba258..9ddb6559c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/RagnaScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/RagnaScan.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("RAGNASCAN", "RagnaScan", "es") internal class RagnaScan(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.RAGNASCAN, "ragnascan.com", pageSize = 5, searchPageSize = 10) + MangaReaderParser(context, MangaSource.RAGNASCAN, "ragnascan.com", pageSize = 5, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Shadowmangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Shadowmangas.kt index e7c9a8ed9..e9b36dea8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Shadowmangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Shadowmangas.kt @@ -8,6 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SHADOWMANGAS", "ShadowMangas", "es") internal class Shadowmangas(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SHADOWMANGAS, "shadowmangas.com", pageSize = 10, searchPageSize = 10) { - override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/SkyMangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/SkyMangas.kt index eea97eafa..f7f6c0354 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/SkyMangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/SkyMangas.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class SkyMangas(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SKYMANGAS, "skymangas.com", pageSize = 20, searchPageSize = 10) { override val encodedSrc = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TecnoScann.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TecnoScann.kt index 1f2c6edd0..1c76b5213 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TecnoScann.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TecnoScann.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TECNOSCANN", "TecnoScann", "es") internal class TecnoScann(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TECNOSCANN, "tecnoscann.com", 20, 10) + MangaReaderParser(context, MangaSource.TECNOSCANN, "tecnoscann.com", 20, 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TenkaiScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TenkaiScan.kt index 52626ebe7..d680febc3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TenkaiScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TenkaiScan.kt @@ -11,4 +11,5 @@ import java.util.Locale internal class TenkaiScan(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.TENKAISCAN, "tenkaiscan.net", 20, 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TraduccionesMoonlight.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TraduccionesMoonlight.kt index cb8a9c8ae..8acd80f75 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TraduccionesMoonlight.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TraduccionesMoonlight.kt @@ -9,6 +9,4 @@ import java.util.Locale @MangaSourceParser("TRADUCCIONESMOONLIGHT", "TraduccionesMoonlight", "es", ContentType.HENTAI) internal class TraduccionesMoonlight(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TRADUCCIONESMOONLIGHT, "tenkaiscan.net", 20, 10) { - override val sourceLocale: Locale = Locale.ENGLISH -} + MangaReaderParser(context, MangaSource.TRADUCCIONESMOONLIGHT, "traduccionesmoonlight.com", 20, 10) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Tresdaos.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Tresdaos.kt index bfb97499d..c8ace1111 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Tresdaos.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/Tresdaos.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TRESDAOS", "Tresdaos", "es") internal class Tresdaos(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TRESDAOS, "tresdaos.com", 20, 10) + MangaReaderParser(context, MangaSource.TRESDAOS, "tresdaos.com", 20, 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt index d8e2af53b..246087a3d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/TuManhwas.kt @@ -20,6 +20,7 @@ internal class TuManhwas(context: MangaLoaderContext) : override val availableSortOrders: Set = EnumSet.of(SortOrder.NEWEST) override val availableStates: Set = emptySet() override val isMultipleTagsSupported = false + override val isTagsExclusionSupported = false override suspend fun getAvailableTags(): Set = emptySet() diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/EpsilonscanParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/EpsilonscanParser.kt index 2ded775ff..90a3854f2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/EpsilonscanParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/EpsilonscanParser.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("EPSILONSCAN", "EpsilonScan", "fr", ContentType.HENTAI) internal class EpsilonscanParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.EPSILONSCAN, "epsilonscan.fr", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.EPSILONSCAN, "epsilonscan.fr", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/GloryScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/GloryScans.kt index 9562be871..d144f13ff 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/GloryScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/GloryScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("GLORYSCANS", "GloryScans", "fr") internal class GloryScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.GLORYSCANS, "gloryscans.fr", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.GLORYSCANS, "gloryscans.fr", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PhenixscansParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PhenixscansParser.kt index b1412dbb3..e13da636d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PhenixscansParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/PhenixscansParser.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class PhenixscansParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.PHENIXSCANS, "phenixscans.fr", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/VfScan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/VfScan.kt index 26f830a52..dbd2a9f37 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/VfScan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/fr/VfScan.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("VFSCAN", "VfScan", "fr") internal class VfScan(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.VFSCAN, "www.vfscan.cc", pageSize = 18, searchPageSize = 18) + MangaReaderParser(context, MangaSource.VFSCAN, "www.vfscan.cc", pageSize = 18, searchPageSize = 18) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt index e82b6bdf4..8e2dc6ad7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/AinzScans.kt @@ -12,4 +12,5 @@ internal class AinzScans(context: MangaLoaderContext) : override val listUrl = "/series" override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Comicaso.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Comicaso.kt index b281448cc..1188be18b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Comicaso.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Comicaso.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Comicaso(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.COMICASO, "comicaso.com", pageSize = 20, searchPageSize = 10) { override val encodedSrc = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt index f979bece2..5733358f9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/CosmicScans.kt @@ -18,53 +18,6 @@ import java.util.Locale @MangaSourceParser("COSMIC_SCANS", "CosmicScans.id", "id") internal class CosmicScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.COSMIC_SCANS, "cosmicscans.id", pageSize = 30, searchPageSize = 30) { - override val sourceLocale: Locale = Locale.ENGLISH - override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED) - override val availableStates: Set = emptySet() - override val isMultipleTagsSupported = false - override val listUrl = "/semua-komik" - - override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { - val url = buildString { - append("https://") - append(domain) - - when (filter) { - - is MangaListFilter.Search -> { - append("/page/") - append(page.toString()) - append("/?s=") - append(filter.query.urlEncoded()) - } - - is MangaListFilter.Advanced -> { - if (filter.tags.isNotEmpty()) { - filter.tags.oneOrThrowIfMany()?.let { - append("/genres/") - append(it.key) - append("/page/") - append(page.toString()) - append('/') - } - } else { - if (page > 1) { - return emptyList() - } - append(listUrl) - } - - } - - null -> { - if (page > 1) { - return emptyList() - } - append(listUrl) - } - } - } - return parseMangaList(webClient.httpGet(url).parseHtml()) - } + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Dojing.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Dojing.kt index 306731551..1a5a66366 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Dojing.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Dojing.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Dojing(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.DOJING, "dojing.net", pageSize = 12, searchPageSize = 12) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinDesuRip.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinDesuRip.kt index 148c32101..055e9051b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinDesuRip.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinDesuRip.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("DOUJINDESURIP", "DoujinDesu.cfd", "id", ContentType.HENTAI) internal class DoujinDesuRip(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.DOUJINDESURIP, "doujindesu.cfd", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.DOUJINDESURIP, "doujindesu.cfd", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinKu.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinKu.kt index 632d4a9a7..498e0dd1b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinKu.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/DoujinKu.kt @@ -11,4 +11,5 @@ import java.util.Locale internal class DoujinKu(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.DOUJINKU, "doujinku.xyz", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Futari.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Futari.kt index 350093942..f09b86afe 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Futari.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Futari.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("FUTARI", "Futari", "id") internal class Futari(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.FUTARI, "futari.info", pageSize = 25, searchPageSize = 10) + MangaReaderParser(context, MangaSource.FUTARI, "futari.info", pageSize = 25, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Kanzenin.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Kanzenin.kt index e20538638..89cbc0fec 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Kanzenin.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Kanzenin.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("KANZENIN", "Kanzenin", "id", ContentType.HENTAI) internal class Kanzenin(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KANZENIN, "kanzenin.info", pageSize = 27, searchPageSize = 10) + MangaReaderParser(context, MangaSource.KANZENIN, "kanzenin.info", pageSize = 27, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KataKomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KataKomik.kt index 1d541e95d..362166cdd 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KataKomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KataKomik.kt @@ -10,4 +10,5 @@ import java.util.* internal class KataKomik(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KATAKOMIK, "katakomik.my.id", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KiryuuParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KiryuuParser.kt index 572cc730a..0e3df1d51 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KiryuuParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KiryuuParser.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("KIRYUU", "Kiryuu", "id") internal class KiryuuParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KIRYUU, "kiryuu.id", pageSize = 30, searchPageSize = 10) + MangaReaderParser(context, MangaSource.KIRYUU, "kiryuu.id", pageSize = 30, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikAvParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikAvParser.kt index 6dc63b02b..618a6c743 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikAvParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikAvParser.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("KOMIKAV", "KomikAv", "id") internal class KomikAvParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KOMIKAV, "komikav.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.KOMIKAV, "komikav.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasa.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasa.kt index 0bb103cce..0d420e446 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasa.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasa.kt @@ -17,4 +17,5 @@ internal class KomikDewasa(context: MangaLoaderContext) : searchPageSize = 10, ) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasaParser.kt index cdb659bdf..1912bd616 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikDewasaParser.kt @@ -12,4 +12,5 @@ internal class KomikDewasaParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKDEWASA, "komikremaja.cfd", pageSize = 20, searchPageSize = 10) { override val listUrl: String = "/komik" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikIndoParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikIndoParser.kt index f18f6f880..280ad6e8f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikIndoParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikIndoParser.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class KomikIndoParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKINDO, "komikindo.co", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSan.kt index 5d2f385d6..83e67f139 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSan.kt @@ -20,6 +20,7 @@ internal class KomikSan(context: MangaLoaderContext) : override val selectMangaListImg = "img.attachment-medium" override val listUrl = "/list" override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt index 84ef81b52..06ce1e976 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikSay.kt @@ -10,4 +10,5 @@ import java.util.* internal class KomikSay(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKSAY, "komiksay.info", pageSize = 30, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikTapParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikTapParser.kt index d408fd033..6a5eef33a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikTapParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikTapParser.kt @@ -10,4 +10,5 @@ import java.util.Locale internal class KomikTapParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKTAP, "komiktap.me", pageSize = 25, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt index f6ba0c98c..07313def5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikcast.kt @@ -21,6 +21,7 @@ internal class Komikcast(context: MangaLoaderContext) : override val availableSortOrders: Set = EnumSet.of(SortOrder.UPDATED, SortOrder.POPULARITY, SortOrder.ALPHABETICAL) override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED) + override val isTagsExclusionSupported = false override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { val url = buildString { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikgoParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikgoParser.kt deleted file mode 100644 index 6c3ac0965..000000000 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/KomikgoParser.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.id - -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.mangareader.MangaReaderParser - -@MangaSourceParser("KOMIKGO", "Komikgo", "id") -internal class KomikgoParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.KOMIKGO, "komikgo.org", pageSize = 20, searchPageSize = 10) { - override val datePattern = "MMM d, yyyy" -} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikstation.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikstation.kt index 02f3609fc..929f15d48 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikstation.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komikstation.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Komikstation(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKSTATION, "komikstation.co", pageSize = 30, searchPageSize = 30) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komiku.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komiku.kt index 10e9a7e68..7bc57fad7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komiku.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Komiku.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Komiku(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKU, "komiku.com", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Lianscans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Lianscans.kt index 0bc4fd373..cbe38470e 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Lianscans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Lianscans.kt @@ -9,6 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("LIANSCANS", "LianScans", "id", ContentType.HENTAI) internal class Lianscans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.LIANSCANS, "www.lianscans.my.id", pageSize = 10, searchPageSize = 10) { - override val datePattern = "MMM d, yyyy" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaShiro.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaShiro.kt index 2a754ceb3..6762e1820 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaShiro.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaShiro.kt @@ -10,4 +10,5 @@ import java.util.Locale internal class MangaShiro(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGASHIRO, "mangashiro.me", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaTaleParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaTaleParser.kt index 2de0cb01b..4d015da46 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaTaleParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangaTaleParser.kt @@ -10,4 +10,5 @@ import java.util.* internal class MangaTaleParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGATALE, "mangatale.co", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangakKita.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangakKita.kt index acefedcd3..fb2f5c58f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangakKita.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/MangakKita.kt @@ -10,4 +10,5 @@ import java.util.* internal class MangakKita(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGAKITA, "mangakita.id", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangakyo.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangakyo.kt index b9b1c6e91..f9ef893a7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangakyo.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Mangakyo.kt @@ -10,4 +10,5 @@ internal class Mangakyo(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGAKYO, "mangakyo.vip", pageSize = 40, searchPageSize = 20) { override val listUrl = "/komik" override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaIndoParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaIndoParser.kt index 6232de042..240694dbb 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaIndoParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaIndoParser.kt @@ -11,5 +11,5 @@ internal class ManhwaIndoParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWAINDO, "manhwaindo.id", pageSize = 30, searchPageSize = 10) { override val datePattern = "MMMM dd, yyyy" override val sourceLocale: Locale = Locale.ENGLISH - override val listUrl: String get() = "/series" + override val listUrl = "/series" } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaLand.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaLand.kt index 50856a1ee..cbe942fab 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaLand.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaLand.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANHWALAND", "ManhwaLand", "id", ContentType.HENTAI) internal class ManhwaLand(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANHWALAND, "62.182.80.253", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANHWALAND, "62.182.80.253", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaPlus.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaPlus.kt index 006c99d36..67ced62e1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaPlus.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwaPlus.kt @@ -11,4 +11,5 @@ internal class ManhwaPlus(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANHWAPLUS, "manhwablue.com", 20, 10) { override val sourceLocale: Locale = Locale.ENGLISH override val listUrl = "/komik" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwadesuParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwadesuParser.kt index 602c5001f..c7560816a 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwadesuParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/ManhwadesuParser.kt @@ -8,6 +8,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANHWADESU", "ManhwaDesu", "id", ContentType.HENTAI) internal class ManhwadesuParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANHWADESU, "manhwadesu.bio", pageSize = 20, searchPageSize = 10) { + MangaReaderParser(context, MangaSource.MANHWADESU, "manhwadesu.cc", pageSize = 20, searchPageSize = 10) { override val listUrl = "/komik" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Natsu.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Natsu.kt index 810497fca..cf7e1ccd6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Natsu.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Natsu.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("NATSU", "Natsu", "id") internal class Natsu(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.NATSU, "natsu.id", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.NATSU, "natsu.id", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Noromax.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Noromax.kt index bf295f893..2f05e06a6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Noromax.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Noromax.kt @@ -11,4 +11,5 @@ internal class Noromax(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.NOROMAX, "noromax.my.id", pageSize = 20, searchPageSize = 10) { override val listUrl = "/Komik" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt index 7a26c2784..e8e3fb987 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SekaikomikParser.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SEKAIKOMIK", "SekaiKomik", "id") internal class SekaikomikParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.bio", pageSize = 20, searchPageSize = 100) + MangaReaderParser(context, MangaSource.SEKAIKOMIK, "sekaikomik.bio", pageSize = 20, searchPageSize = 100) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sektedoujin.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sektedoujin.kt index f6cf956ad..2c0c3e0f5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sektedoujin.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sektedoujin.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Sektedoujin(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SEKTEDOUJIN, "sektedoujin.cc", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sheakomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sheakomik.kt index 9737964b7..6a7870cc5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sheakomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Sheakomik.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Sheakomik(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SHEAKOMIK, "sheakomik.com", pageSize = 40, searchPageSize = 40) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Shirakami.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Shirakami.kt index 5a6df17fd..4ef92805f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Shirakami.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Shirakami.kt @@ -10,5 +10,6 @@ import java.util.Locale internal class Shirakami(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SHIRAKAMI, "shirakami.xyz", pageSize = 10, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SirenKomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SirenKomik.kt index 9b5a1c6dc..4e5234cd6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SirenKomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SirenKomik.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SIRENKOMIK", "SirenKomik", "id") internal class SirenKomik(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SIRENKOMIK, "sirenkomik.my.id", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SIRENKOMIK, "sirenkomik.my.id", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SoulScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SoulScans.kt index 3759f2c02..5dddf7acc 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SoulScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/SoulScans.kt @@ -11,4 +11,5 @@ internal class SoulScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.SOULSCANS, "soulscans.my.id", pageSize = 30, searchPageSize = 30) { override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Tukangkomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Tukangkomik.kt index 590ef59b7..41abf9276 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Tukangkomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/Tukangkomik.kt @@ -11,4 +11,5 @@ internal class Tukangkomik(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.TUKANGKOMIK, "tukangkomik.id", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WarungKomik.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WarungKomik.kt index 6906db67c..883d9dc14 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WarungKomik.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WarungKomik.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("WARUNGKOMIK", "WarungKomik", "id") internal class WarungKomik(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.WARUNGKOMIK, "warungkomik.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.WARUNGKOMIK, "warungkomik.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WestmangaParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WestmangaParser.kt index 3ab6537d2..d7ea871a3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WestmangaParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/WestmangaParser.kt @@ -10,4 +10,5 @@ import java.util.* internal class WestmangaParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.WESTMANGA, "westmanga.org", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/YuriLab.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/YuriLab.kt index b560ddb6c..e0de2e09d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/YuriLab.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/id/YuriLab.kt @@ -11,4 +11,5 @@ import java.util.Locale internal class YuriLab(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.YURILAB, "yurilab.my.id", pageSize = 20, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/Walpurgiscan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/Walpurgiscan.kt index 120a22995..2cab6a21f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/Walpurgiscan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/Walpurgiscan.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Walpurgiscan(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.WALPURGISCAN, "www.walpurgiscan.it", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt index 1f0dd1d8b..a0d60c935 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/it/WitComics.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("WITCOMICS", "WitComics", "it") internal class WitComics(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.WITCOMICS, "www.witcomics.net", pageSize = 5, searchPageSize = 10) + MangaReaderParser(context, MangaSource.WITCOMICS, "www.witcomics.net", pageSize = 5, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaJp.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaJp.kt index ecd658c8d..6ee6922fa 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaJp.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaJp.kt @@ -10,4 +10,5 @@ import java.util.Locale internal class MangaJp(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGAJP, "mangajp.top", pageSize = 54, searchPageSize = 10) { override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaMate.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaMate.kt index c50fb8a93..4b814bfa3 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaMate.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/MangaMate.kt @@ -11,4 +11,5 @@ internal class MangaMate(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGAMATE, "manga-mate.org", pageSize = 10, searchPageSize = 10) { override val datePattern = "M月 d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/Rawkuma.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/Rawkuma.kt index 9d8951bf2..7899ae753 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/Rawkuma.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/ja/Rawkuma.kt @@ -11,4 +11,5 @@ internal class Rawkuma(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.RAWKUMA, "rawkuma.com", pageSize = 54, searchPageSize = 54) { override val datePattern = "MMM d, yyyy" override val sourceLocale: Locale = Locale.ENGLISH + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pl/SkanlacjeFeniksy.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pl/SkanlacjeFeniksy.kt index 8203ffe0d..28c127d28 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pl/SkanlacjeFeniksy.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pl/SkanlacjeFeniksy.kt @@ -15,4 +15,5 @@ internal class SkanlacjeFeniksy(context: MangaLoaderContext) : searchPageSize = 10, ) { override val datePattern = "d MMMM, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/FranxxMangas.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/FranxxMangas.kt index 3254ca611..70b833b41 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/FranxxMangas.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/FranxxMangas.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class FranxxMangas(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.FRANXXMANGAS, "franxxmangas.net", pageSize = 20, searchPageSize = 20) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasChan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasChan.kt index 9ab89ca85..cf9d04b2d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasChan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasChan.kt @@ -8,7 +8,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGASCHAN", "MangasChan", "pt") internal class MangasChan(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.MANGASCHAN, "mangaschan.net", pageSize = 20, searchPageSize = 20) { - override val datePattern = "MMMM d, yyyy" - } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasOnline.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasOnline.kt index d91577bcf..8e448ee8c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasOnline.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/MangasOnline.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGASONLINE", "MangasOnline", "pt") internal class MangasOnline(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGASONLINE, "mangasonline.cc", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANGASONLINE, "mangasonline.cc", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} 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 1f41afb10..57a392f6c 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,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SSSSCANLATOR", "SssScanlator", "pt") internal class SssScanlator(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SSSSCANLATOR, "sssscanlator.com.br", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SSSSCANLATOR, "sssscanlator.com.br", pageSize = 20, searchPageSize = 10){ + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/Tsundoku.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/Tsundoku.kt index 362960f80..7e73d0ec6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/Tsundoku.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/pt/Tsundoku.kt @@ -9,4 +9,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Tsundoku(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.TSUNDOKU, "tsundoku.com.br", pageSize = 50, searchPageSize = 50) { override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Doujin69.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Doujin69.kt index 91cb7adea..52c39a75b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Doujin69.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Doujin69.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class Doujin69(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.DOUJIN69, "doujin69.com", pageSize = 40, searchPageSize = 21) { override val listUrl = "/doujin" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/InuManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/InuManga.kt index 92fac783b..886240173 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/InuManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/InuManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("INUMANGA", "InuManga", "th") internal class InuManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.INUMANGA, "www.inu-manga.com", pageSize = 40, searchPageSize = 10) + MangaReaderParser(context, MangaSource.INUMANGA, "www.inu-manga.com", pageSize = 40, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/LamiManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/LamiManga.kt index 92dc6b13e..be7218ce5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/LamiManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/LamiManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("LAMIMANGA", "LamiManga", "th") internal class LamiManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.LAMIMANGA, "www.lami-manga.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.LAMIMANGA, "www.lami-manga.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MafiaManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MafiaManga.kt index 6445d38cb..fdb47a6a4 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MafiaManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MafiaManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MAFIAMANGA", "MafiaManga", "th") internal class MafiaManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MAFIAMANGA, "mafia-manga.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MAFIAMANGA, "mafia-manga.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga168.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga168.kt index d88516b4e..5c97dbf85 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga168.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga168.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGA168", "Manga168", "th", ContentType.HENTAI) internal class Manga168(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGA168, "manga168.com", pageSize = 40, searchPageSize = 30) + MangaReaderParser(context, MangaSource.MANGA168, "manga168.com", pageSize = 40, searchPageSize = 30) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga689.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga689.kt index 1cff3018a..7d70e6de5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga689.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Manga689.kt @@ -7,4 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGA689", "Manga689", "th") internal class Manga689(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGA689, "manga689.com", pageSize = 45, searchPageSize = 21) + MangaReaderParser(context, MangaSource.MANGA689, "manga689.com", pageSize = 45, searchPageSize = 21) { + override val listUrl = "/read" + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MangaMoons.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MangaMoons.kt index 378e7e38a..f5b9f15d9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MangaMoons.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/MangaMoons.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGAMOONS", "MangaMoons", "th") internal class MangaMoons(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGAMOONS, "manga-moons.net", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANGAMOONS, "manga-moons.net", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/PopsManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/PopsManga.kt index 920fa8c8f..b96e6463b 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/PopsManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/PopsManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("POPSMANGA", "PopsManga", "th") internal class PopsManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.POPSMANGA, "popsmanga.com", pageSize = 20, searchPageSize = 14) + MangaReaderParser(context, MangaSource.POPSMANGA, "popsmanga.com", pageSize = 20, searchPageSize = 14) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Sodsaime.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Sodsaime.kt index b8e2b9421..fcacac5eb 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Sodsaime.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/Sodsaime.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SODSAIME", "สดใสเมะ", "th") internal class Sodsaime(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SODSAIME, "www.xn--l3c0azab5a2gta.com", pageSize = 40, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SODSAIME, "www.xn--l3c0azab5a2gta.com", pageSize = 40, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ThaiManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ThaiManga.kt index 512bcea25..9ecb7b3c0 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ThaiManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ThaiManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("THAIMANGA", "ThaiManga", "th") internal class ThaiManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.THAIMANGA, "www.thaimanga.net", pageSize = 40, searchPageSize = 10) + MangaReaderParser(context, MangaSource.THAIMANGA, "www.thaimanga.net", pageSize = 40, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToomtamManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToomtamManga.kt index 0ac593d6d..8566245c6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToomtamManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToomtamManga.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TOOMTAMMANGA", "ToomtamManga", "th", ContentType.HENTAI) internal class ToomtamManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TOOMTAMMANGA, "toomtam-manga.com", pageSize = 30, searchPageSize = 28) + MangaReaderParser(context, MangaSource.TOOMTAMMANGA, "toomtam-manga.com", pageSize = 30, searchPageSize = 28) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToonHunterParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToonHunterParser.kt index 26615f404..40596eaa6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToonHunterParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/th/ToonHunterParser.kt @@ -8,6 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TOONHUNTER", "ToonHunter", "th") internal class ToonHunterParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.TOONHUNTER, "toonhunter.com", pageSize = 30, searchPageSize = 10) { - override val datePattern = "MMM d, yyyy" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AdonisFansub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AdonisFansub.kt index 9370aad20..82ac2cd4d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AdonisFansub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AdonisFansub.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ADONISFANSUB", "AdonisFansub", "tr") internal class AdonisFansub(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ADONISFANSUB, "manga.adonisfansub.com", pageSize = 20, searchPageSize = 20) + MangaReaderParser(context, MangaSource.ADONISFANSUB, "manga.adonisfansub.com", pageSize = 20, searchPageSize = 20) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AfroditScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AfroditScans.kt index de9f7c3d6..cec60ace1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AfroditScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AfroditScans.kt @@ -10,4 +10,5 @@ internal class AfroditScans(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.AFRODITSCANS, "afroditscans.com", pageSize = 20, searchPageSize = 10) { override val datePattern = "MMM d, yyyy" override val isNetShieldProtected = true + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/ArcuraFansub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/ArcuraFansub.kt index 120d4e466..7e01e65ae 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/ArcuraFansub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/ArcuraFansub.kt @@ -10,4 +10,5 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser internal class ArcuraFansub(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ARCURAFANSUB, "arcurafansub.com", pageSize = 20, searchPageSize = 10) { override val listUrl = "/seri" + override val isTagsExclusionSupported = false } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AsuraTRParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AsuraTRParser.kt index 2841dfae0..162bcdef5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AsuraTRParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/AsuraTRParser.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ASURATR", "ArmoniScans", "tr") internal class AsuraTRParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ASURATR, "armoniscans.com", pageSize = 30, searchPageSize = 10) + MangaReaderParser(context, MangaSource.ASURATR, "armoniscans.com", pageSize = 30, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Ayatoon.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Ayatoon.kt index 74192395d..9c9b79079 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Ayatoon.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Ayatoon.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("AYATOON", "AyaToon", "tr") internal class Ayatoon(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.AYATOON, "ayatoon.com", pageSize = 20, searchPageSize = 20) + MangaReaderParser(context, MangaSource.AYATOON, "ayatoon.com", pageSize = 20, searchPageSize = 20) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Golgebahcesi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Golgebahcesi.kt index 970be5530..55ef140ab 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Golgebahcesi.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Golgebahcesi.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("GOLGEBAHCESI", "GolgeBahcesi", "tr") internal class Golgebahcesi(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.GOLGEBAHCESI, "golgebahcesi.com", pageSize = 14, searchPageSize = 9) + MangaReaderParser(context, MangaSource.GOLGEBAHCESI, "golgebahcesi.com", pageSize = 14, searchPageSize = 9) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaGezgini.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaGezgini.kt index b6a94131b..2e0a50aa0 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaGezgini.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaGezgini.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGAGEZGINI", "MangaGezgini", "tr") internal class MangaGezgini(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGAGEZGINI, "mangagezgini.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANGAGEZGINI, "mangagezgini.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaKings.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaKings.kt index 9f56b20dc..02e3ba83c 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaKings.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MangaKings.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGAKINGS", "MangaKings", "tr") internal class MangaKings(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGAKINGS, "mangakings.com.tr", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MANGAKINGS, "mangakings.com.tr", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Mangaefendisi.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Mangaefendisi.kt index 7232b4808..33307b84d 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Mangaefendisi.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Mangaefendisi.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MANGAEFENDISI", "MangaEfendisi", "tr") internal class Mangaefendisi(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MANGAEFENDISI, "mangaefendisi.net", pageSize = 30, searchPageSize = 20) + MangaReaderParser(context, MangaSource.MANGAEFENDISI, "mangaefendisi.net", pageSize = 30, searchPageSize = 20) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MerlinScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MerlinScans.kt index 18e9e4d67..2f17473a6 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MerlinScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MerlinScans.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MERLINSCANS", "MerlinScans", "tr") internal class MerlinScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MERLINSCANS, "merlinscans.com", pageSize = 25, searchPageSize = 20) + MangaReaderParser(context, MangaSource.MERLINSCANS, "merlinscans.com", pageSize = 25, searchPageSize = 20) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MilaSub.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MilaSub.kt index 16f78b1d9..9c5217a95 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MilaSub.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MilaSub.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MILASUB", "MilaSub", "tr") internal class MilaSub(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MILASUB, "www.milasub.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MILASUB, "www.milasub.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MoonDaisyScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MoonDaisyScans.kt index e24412388..c9c40c91f 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MoonDaisyScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/MoonDaisyScans.kt @@ -8,4 +8,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("MOONDAISY_SCANS", "MoonDaisyScans", "tr", ContentType.HENTAI) internal class MoonDaisyScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.MOONDAISY_SCANS, "moondaisyscans.biz", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.MOONDAISY_SCANS, "moondaisyscans.biz", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NirvanaManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NirvanaManga.kt index 66b3f7b19..0d5a1bfea 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NirvanaManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NirvanaManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("NIRVANAMANGA", "NirvanaManga", "tr") internal class NirvanaManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.NIRVANAMANGA, "nirvanamanga.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.NIRVANAMANGA, "nirvanamanga.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NyxManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NyxManga.kt index 169e44117..ff11971e1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NyxManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/NyxManga.kt @@ -7,5 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("NYXMANGA", "NyxManga", "tr") internal class NyxManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.NYXMANGA, "nyxmanga.com", pageSize = 14, searchPageSize = 10) + MangaReaderParser(context, MangaSource.NYXMANGA, "nyxmanga.com", pageSize = 14, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/PatiManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/PatiManga.kt index 4a851049d..6a839b134 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/PatiManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/PatiManga.kt @@ -7,5 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("PATIMANGA", "PatiManga", "tr") internal class PatiManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.PATIMANGA, "www.patimanga.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.PATIMANGA, "www.patimanga.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Raindropteamfan.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Raindropteamfan.kt index 555c9816a..d29d33a64 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Raindropteamfan.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/Raindropteamfan.kt @@ -13,5 +13,7 @@ internal class Raindropteamfan(context: MangaLoaderContext) : "www.raindropteamfan.com", pageSize = 25, searchPageSize = 10, - ) + ) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/RobinManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/RobinManga.kt index fb02bea42..5393216a8 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/RobinManga.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/RobinManga.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("ROBINMANGA", "RobinManga", "tr") internal class RobinManga(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.ROBINMANGA, "www.robinmanga.com", pageSize = 20, searchPageSize = 25) + MangaReaderParser(context, MangaSource.ROBINMANGA, "www.robinmanga.com", pageSize = 20, searchPageSize = 25) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/SummerToon.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/SummerToon.kt index 51e84e6d0..bc806a141 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/SummerToon.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/SummerToon.kt @@ -7,5 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("SUMMERTOON", "SummerToon", "tr") internal class SummerToon(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.SUMMERTOON, "summertoon.com", pageSize = 10, searchPageSize = 10) + MangaReaderParser(context, MangaSource.SUMMERTOON, "summertoon.com", pageSize = 10, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TarotScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TarotScans.kt index 2897b181a..93b07e3e2 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TarotScans.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TarotScans.kt @@ -7,5 +7,7 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TAROTSCANS", "TarotScans", "tr") internal class TarotScans(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TAROTSCANS, "www.tarotscans.com", pageSize = 20, searchPageSize = 10) + MangaReaderParser(context, MangaSource.TAROTSCANS, "www.tarotscans.com", pageSize = 20, searchPageSize = 10) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TempestfansubParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TempestfansubParser.kt index 4466466a9..ee00c4ab1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TempestfansubParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/tr/TempestfansubParser.kt @@ -7,4 +7,6 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser @MangaSourceParser("TEMPESTFANSUB", "TempestFansub.Com", "tr") internal class TempestfansubParser(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.TEMPESTFANSUB, "tempestfansub.com", pageSize = 25, searchPageSize = 40) + MangaReaderParser(context, MangaSource.TEMPESTFANSUB, "tempestfansub.com", pageSize = 25, searchPageSize = 40) { + override val isTagsExclusionSupported = false +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt index f175cbe1d..ccc6f2700 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/nepnep/NepnepParser.kt @@ -25,6 +25,7 @@ internal abstract class NepnepParser( override val availableSortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL) override val availableStates: Set = EnumSet.allOf(MangaState::class.java) + override val isTagsExclusionSupported = true override val headers: Headers = Headers.Builder() .add("User-Agent", UserAgents.CHROME_DESKTOP) @@ -36,6 +37,7 @@ internal abstract class NepnepParser( } var foundTag = true + var foundTagExclude = true var foundState = true val doc = webClient.httpGet("https://$domain/search/").parseHtml() @@ -77,6 +79,16 @@ internal abstract class NepnepParser( } } + if (filter.tagsExclude.isNotEmpty()) { + val tagsJon = m.getJSONArray("g").toString() + filter.tagsExclude.forEach { + foundTagExclude = false + if (!tagsJon.contains(it.key, ignoreCase = true)) { + foundTagExclude = true + } + } + } + if (filter.states.isNotEmpty()) { val stateJson = m.getString("ps") filter.states.oneOrThrowIfMany().let { @@ -97,7 +109,7 @@ internal abstract class NepnepParser( } } - if (foundTag && foundState) { + if (foundTag && foundState && foundTagExclude) { manga.add(addManga(href, imgUrl, m)) } } diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/FmTeam.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/PizzaReaderParser.kt similarity index 64% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/FmTeam.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/PizzaReaderParser.kt index 8b81136be..3bd1b05a9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fr/FmTeam.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/PizzaReaderParser.kt @@ -1,4 +1,4 @@ -package org.koitharu.kotatsu.parsers.site.fr +package org.koitharu.kotatsu.parsers.site.pizzareader import kotlinx.coroutines.coroutineScope import org.json.JSONArray @@ -13,20 +13,66 @@ import org.koitharu.kotatsu.parsers.util.json.* import java.text.SimpleDateFormat import java.util.* -@MangaSourceParser("FMTEAM", "FmTeam", "fr") -internal class FmTeam(context: MangaLoaderContext) : - PagedMangaParser(context, MangaSource.FMTEAM, 0) { +internal abstract class PizzaReaderParser( + context: MangaLoaderContext, + source: MangaSource, + domain: String, + pageSize: Int = 20, +) : PagedMangaParser(context, source, pageSize) { + + override val configKeyDomain = ConfigKey.Domain(domain) override val availableSortOrders: Set = EnumSet.of(SortOrder.ALPHABETICAL) - override val availableStates: Set = EnumSet.of(MangaState.ONGOING, MangaState.FINISHED) - override val configKeyDomain = ConfigKey.Domain("fmteam.fr") + override val availableStates: Set = + EnumSet.of(MangaState.ONGOING, MangaState.FINISHED, MangaState.PAUSED, MangaState.ABANDONED) + override val availableContentRating: Set = EnumSet.of(ContentRating.SAFE, ContentRating.ADULT) + override val isTagsExclusionSupported = true + + @JvmField + protected val ongoing: Set = hashSetOf( + "en cours", + "in corso", + "in corso (cadenza irregolare)", + "in corso (irregolare)", + "in corso (mensile)", + "in corso (quindicinale)", + "in corso (settimanale)", + "In corso (bisettimanale)", + ) + + + @JvmField + protected val finished: Set = hashSetOf( + "terminé", + "concluso", + "completato", + ) + + @JvmField + protected val paused: Set = hashSetOf( + "in pausa", + "in corso (in pausa)", + ) + + @JvmField + protected val abandoned: Set = hashSetOf( + "droppato", + ) + + + protected open val ongoingFilter = "in corso" + protected open val completedFilter = "concluso" + protected open val hiatusFilter = "in pausa" + protected open val abandonedFilter = "droppato" override suspend fun getListPage(page: Int, filter: MangaListFilter?): List { if (page > 1) { return emptyList() } var foundTag = true + var foundTagExclude = true var foundState = true + var foundContentRating = true val manga = ArrayList() @@ -48,7 +94,7 @@ internal class FmTeam(context: MangaLoaderContext) : val j = jsonManga.getJSONObject(i) val href = "/api" + j.getString("url") - if (filter.tags.isNotEmpty() && filter.states.isEmpty()) { + if (filter.tags.isNotEmpty()) { val a = j.getJSONArray("genres").toString() foundTag = false filter.tags.forEach { @@ -58,14 +104,26 @@ internal class FmTeam(context: MangaLoaderContext) : } } + if (filter.tagsExclude.isNotEmpty()) { + val a = j.getJSONArray("genres").toString() + foundTagExclude = false + filter.tagsExclude.forEach { + if (!a.contains(it.key, ignoreCase = true)) { + foundTagExclude = true + } + } + } + if (filter.states.isNotEmpty()) { val a = j.getString("status") foundState = false filter.states.oneOrThrowIfMany()?.let { - if (a.contains( + if (a.lowercase().contains( when (it) { - MangaState.ONGOING -> "En cours" - MangaState.FINISHED -> "Terminé" + MangaState.PAUSED -> hiatusFilter + MangaState.ONGOING -> ongoingFilter + MangaState.FINISHED -> completedFilter + MangaState.ABANDONED -> abandonedFilter else -> "" }, ignoreCase = true, @@ -77,7 +135,25 @@ internal class FmTeam(context: MangaLoaderContext) : } - if (foundState && foundTag) { + if (filter.contentRating.isNotEmpty()) { + val a = j.getInt("adult") + foundContentRating = false + filter.contentRating.oneOrThrowIfMany()?.let { + if (a == ( + when (it) { + ContentRating.SAFE -> 0 + ContentRating.ADULT -> 1 + else -> 0 + } + ) + ) { + foundContentRating = true + } + } + + } + + if (foundState && foundTag && foundTagExclude && foundContentRating) { manga.add(addManga(href, j)) } } @@ -115,8 +191,10 @@ internal class FmTeam(context: MangaLoaderContext) : tags = emptySet(), author = j.getString("author"), state = when (j.getString("status").lowercase()) { - "en cours" -> MangaState.ONGOING - "terminé" -> MangaState.FINISHED + in ongoing -> MangaState.ONGOING + in finished -> MangaState.FINISHED + in paused -> MangaState.PAUSED + in abandoned -> MangaState.ABANDONED else -> null }, source = source, diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/fr/FmTeam.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/fr/FmTeam.kt new file mode 100644 index 000000000..94a0636ee --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/fr/FmTeam.kt @@ -0,0 +1,13 @@ +package org.koitharu.kotatsu.parsers.site.pizzareader.fr + +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.pizzareader.PizzaReaderParser + +@MangaSourceParser("FMTEAM", "FmTeam", "fr") +internal class FmTeam(context: MangaLoaderContext) : + PizzaReaderParser(context, MangaSource.FMTEAM, "fmteam.fr") { + override val ongoingFilter = "en cours" + override val completedFilter = "terminé" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/GtoTheGreatSite.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/GtoTheGreatSite.kt new file mode 100644 index 000000000..98b759fde --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/GtoTheGreatSite.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.pizzareader.it + +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.pizzareader.PizzaReaderParser + +@MangaSourceParser("GTOTHEGREATSITE", "GtoTheGreatSite", "it") +internal class GtoTheGreatSite(context: MangaLoaderContext) : + PizzaReaderParser(context, MangaSource.GTOTHEGREATSITE, "reader.gtothegreatsite.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/LupiTeam.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/LupiTeam.kt new file mode 100644 index 000000000..9ebaf2264 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/LupiTeam.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.pizzareader.it + +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.pizzareader.PizzaReaderParser + +@MangaSourceParser("LUPITEAM", "LupiTeam", "it") +internal class LupiTeam(context: MangaLoaderContext) : + PizzaReaderParser(context, MangaSource.LUPITEAM, "lupiteam.net") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/PhoenixScans.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/PhoenixScans.kt new file mode 100644 index 000000000..3c7ff7cb3 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/PhoenixScans.kt @@ -0,0 +1,10 @@ +package org.koitharu.kotatsu.parsers.site.pizzareader.it + +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.pizzareader.PizzaReaderParser + +@MangaSourceParser("PHOENIXSCANS", "PhoenixScans", "it") +internal class PhoenixScans(context: MangaLoaderContext) : + PizzaReaderParser(context, MangaSource.PHOENIXSCANS, "www.phoenixscans.com") diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/TuttoAnimeManga.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/TuttoAnimeManga.kt new file mode 100644 index 000000000..92496c43e --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/pizzareader/it/TuttoAnimeManga.kt @@ -0,0 +1,12 @@ +package org.koitharu.kotatsu.parsers.site.pizzareader.it + +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.pizzareader.PizzaReaderParser + +@MangaSourceParser("TUTTOANIMEMANGA", "TuttoAnimeManga", "it") +internal class TuttoAnimeManga(context: MangaLoaderContext) : + PizzaReaderParser(context, MangaSource.TUTTOANIMEMANGA, "tuttoanimemanga.net") { + override val completedFilter = "completato" +} diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/AiyuMangaScanlation.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/es/AiyuMangaScanlation.kt similarity index 52% rename from src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/AiyuMangaScanlation.kt rename to src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/es/AiyuMangaScanlation.kt index 4ea0e9db0..2e4953655 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/mangareader/es/AiyuMangaScanlation.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/zeistmanga/es/AiyuMangaScanlation.kt @@ -1,10 +1,12 @@ -package org.koitharu.kotatsu.parsers.site.mangareader.es +package org.koitharu.kotatsu.parsers.site.zeistmanga.es 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.mangareader.MangaReaderParser +import org.koitharu.kotatsu.parsers.site.zeistmanga.ZeistMangaParser @MangaSourceParser("AIYUMANGASCANLATION", "AiyuManhua", "es") internal class AiyuMangaScanlation(context: MangaLoaderContext) : - MangaReaderParser(context, MangaSource.AIYUMANGASCANLATION, "www.aiyumanhua.com", 20, 10) + ZeistMangaParser(context, MangaSource.AIYUMANGASCANLATION, "www.aiyumanhua.com") { + override val selectPage = "article.chapter img" +}