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 f7a7e334..4f790c91 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 2e2b2634..bab5242b 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 3a0c64bd..74a29b1a 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 1ae78131..d7b77372 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 d2c963f4..f57b1147 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 5c8521b5..d81619bd 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 3817021d..73890a17 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 00000000..df95e73a --- /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 cf2fa876..ee612055 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 b6d099ca..e538cb98 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 01073fcd..95826023 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 f0f5383f..af80b502 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 70241a79..5c1f6ced 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 ec3c171a..d052a289 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 0affb736..061a0736 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 67e2317f..e94c76c9 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 3e686ece..8c68cae7 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 5b43fdf0..40f6cf39 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 96bd0c65..154977fc 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 5b99482b..7c069e06 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 79bdd619..5bdacc06 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 e37f4adc..745f7840 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 0a055730..a6dddc8e 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 97779f85..f87e7af2 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 e7d8ecaa..d0f660eb 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 12f91aaa..5b7342dc 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 8718a83d..22dc1a4e 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 5017d0e0..f3d2c391 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 0fbca994..5b89a08d 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 ae2fd67e..bdc26ee7 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 9a663681..c0bf3fd9 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 fba9437a..9e639f32 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 fbbb4cf5..87f19038 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 016063af..f02dffa3 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 dd936eb8..bcf6d321 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 8eea3349..abe68373 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 9a8f4da0..71a03f6c 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 2c3e1aab..dc39d32a 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 3b1e566d..71a7c636 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 1c9ba41c..988e6b4f 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 b6e2f581..5c0b7b6f 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 39cc5244..dc92cf66 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 837f8352..2db6792a 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 6c51ed39..d1b3b53b 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 d623ed6f..28fd53b8 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 c7edb24d..696caab3 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 87e97e14..27ecfe51 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 3c675e90..174f9d28 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 4e44a9ad..ef0edfa4 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 a4524bfd..f4c59f0e 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 4bc4034e..c1d45ed4 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 7d57f9a9..97292a2d 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 d70b8d98..77d85d70 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 92b554fb..d15a0ec7 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 d566aa04..7852b9db 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 6c5cba25..9ddb6559 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 e7c9a8ed..e9b36dea 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 eea97eaf..f7f6c035 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 1f2c6edd..1c76b521 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 52626ebe..d680febc 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 cb8a9c8a..8acd80f7 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 bfb97499..c8ace111 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 d8e2af53..246087a3 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 2ded775f..90a3854f 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 9562be87..d144f13f 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 b1412dbb..e13da636 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 26f830a5..dbd2a9f3 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 e82b6bdf..8e2dc6ad 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 b281448c..1188be18 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 f979bece..5733358f 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 30673155..1a5a6636 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 148c3210..055e9051 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 632d4a9a..498e0dd1 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 35009394..f09b86af 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 e2053863..89cbc0fe 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 1d541e95..362166cd 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 572cc730..0e3df1d5 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 6dc63b02..618a6c74 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 0bb103cc..0d420e44 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 cdb659bd..1912bd61 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 f18f6f88..280ad6e8 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 5d2f385d..83e67f13 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 84ef81b5..06ce1e97 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 d408fd03..6a5eef33 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 f6ba0c98..07313def 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 6c3ac096..00000000 --- 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 02f3609f..929f15d4 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 10e9a7e6..7bc57fad 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 0bc4fd37..cbe38470 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 2a754ceb..6762e182 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 2de0cb01..4d015da4 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 acefedcd..fb2f5c58 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 b9b1c6e9..f9ef893a 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 6232de04..240694db 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 50856a1e..cbe942fa 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 006c99d3..67ced62e 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 602c5001..c7560816 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 810497fc..cf7e1ccd 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 bf295f89..2f05e06a 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 7a26c278..e8e3fb98 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 f6cf956a..2c0c3e0f 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 9737964b..6a7870cc 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 5a6df17f..4ef92805 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 9b5a1c6d..4e5234cd 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 3759f2c0..5dddf7ac 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 590ef59b..41abf927 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 6906db67..883d9dc1 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 3ab6537d..d7ea871a 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 b560ddb6..e0de2e09 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 120a2299..2cab6a21 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 1f0dd1d8..a0d60c93 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 ecd658c8..6ee6922f 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 c50fb8a9..4b814bfa 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 9d8951bf..7899ae75 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 8203ffe0..28c127d2 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 3254ca61..70b833b4 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 9ab89ca8..cf9d04b2 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 d91577bc..8e448ee8 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 1f41afb1..57a392f6 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 362960f8..7e73d0ec 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 91cb7ade..52c39a75 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 92fac783..88624017 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 92dc6b13..be7218ce 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 6445d38c..fdb47a6a 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 d88516b4..5c97dbf8 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 1cff3018..7d70e6de 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 378e7e38..f5b9f15d 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 920fa8c8..b96e6463 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 b8e2b942..fcacac5e 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 512bcea2..9ecb7b3c 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 0ac593d6..8566245c 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 26615f40..40596eaa 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 9370aad2..82ac2cd4 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 de9f7c3d..cec60ace 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 120d4e46..7e01e65a 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 2841dfae..162bcdef 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 74192395..9c9b7907 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 970be553..55ef140a 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 b6a94131..2e0a50aa 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 9f56b20d..02e3ba83 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 7232b480..33307b84 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 18e9e4d6..2f17473a 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 16f78b1d..9c5217a9 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 e2441238..c9c40c91 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 66b3f7b1..0d5a1bfe 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 169e4411..ff11971e 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 4a851049..6a839b13 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 555c9816..d29d33a6 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 fb02bea4..5393216a 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 51e84e6d..bc806a14 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 2897b181..93b07e3e 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 4466466a..ee00c4ab 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 f175cbe1..ccc6f270 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 8b81136b..3bd1b05a 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 00000000..94a0636e --- /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 00000000..98b759fd --- /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 00000000..9ebaf226 --- /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 00000000..3c7ff7cb --- /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 00000000..92496c43 --- /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 4ea0e9db..2e495365 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" +}