From 29cd1f1fdf6ba8e0d7263ac168a0da97c9c3ee9c Mon Sep 17 00:00:00 2001 From: Saksham Shekher <95137948+OshekharO@users.noreply.github.com> Date: Tue, 14 Feb 2023 11:54:42 +0530 Subject: [PATCH 1/5] Add: KumaPoi --- .../parsers/site/mangareader/MangaReaderParser.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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 904f65ab..769e3b24 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 @@ -447,6 +447,20 @@ internal abstract class MangaReaderParser( override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", idLocale) } + @MangaSourceParser("KUMAPOI", "KumaPoi", "id") + class KumaPoiParser(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.KUMAPOI, pageSize = 15, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("kumapoi.me", null) + + override val listUrl: String + get() = "/manga" + override val tableMode: Boolean + get() = true + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) + } + @MangaSourceParser("ASURASCANS", "Asura Scans", "en") class AsuraScansParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.ASURASCANS, pageSize = 20, searchPageSize = 10) { From 503573f3880784e9445cf057f933335048ea8ca4 Mon Sep 17 00:00:00 2001 From: Saksham Shekher <95137948+OshekharO@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:03:18 +0530 Subject: [PATCH 2/5] Add: KomikLokal --- .../site/mangareader/MangaReaderParser.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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 769e3b24..f61a9779 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 @@ -514,6 +514,30 @@ internal abstract class MangaReaderParser( } } + @MangaSourceParser("KOMIKLOKAL", "KomikLokal", "id") + class CosmicScansParser(context: MangaLoaderContext) : + KomikLokalParser(context, MangaSource.KOMIKLOKAL, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("komiklokal.pics", null) + + override val listUrl: String + get() = "/manga" + override val tableMode: Boolean + get() = false + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) + + override suspend fun parseInfoList(docs: Document, manga: Manga, chapters: List): Manga { + val infoElement = docs.selectFirst("div.infox") + return manga.copy( + chapters = chapters, + tags = infoElement?.select(".wd-full .mgen > a") + ?.mapNotNullToSet { getOrCreateTagMap()[it.text()] } + .orEmpty(), + ) + } + } + @MangaSourceParser("KOMIKAV", "KomiKav", "id") class KomiKavParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.KOMIKAV, pageSize = 20, searchPageSize = 10) { From 0da57c041cd7ffa15a3a13b2eaaa4725de25c9e3 Mon Sep 17 00:00:00 2001 From: Saksham Shekher <95137948+OshekharO@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:09:40 +0530 Subject: [PATCH 3/5] Fix --- .../kotatsu/parsers/site/mangareader/MangaReaderParser.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 f61a9779..8dcbbc54 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 @@ -515,8 +515,8 @@ internal abstract class MangaReaderParser( } @MangaSourceParser("KOMIKLOKAL", "KomikLokal", "id") - class CosmicScansParser(context: MangaLoaderContext) : - KomikLokalParser(context, MangaSource.KOMIKLOKAL, pageSize = 20, searchPageSize = 10) { + class KomikLokalParser(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.KOMIKLOKAL, pageSize = 20, searchPageSize = 10) { override val configKeyDomain: ConfigKey.Domain get() = ConfigKey.Domain("komiklokal.pics", null) From a51d6d64855b4d4c97dcb1b663eb49842e22e06b Mon Sep 17 00:00:00 2001 From: Saksham Shekher <95137948+OshekharO@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:37:01 +0530 Subject: [PATCH 4/5] Add: Hentai20 --- .../kotatsu/parsers/site/madara/MadaraParser.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt index 3e8b0318..f6c6dac7 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/MadaraParser.kt @@ -405,7 +405,16 @@ internal abstract class MadaraParser( class MangaDistrict(context: MangaLoaderContext) : MadaraParser(context, MangaSource.MANGA_DISTRICT, "mangadistrict.com") { - override val tagPrefix = "publication-genre/" + override val tagPrefix = "read-scan/" + + override val isNsfwSource = true + } + + @MangaSourceParser("HENTAI20", "Hentai20", "en") + class Hentai20(context: MangaLoaderContext) : + MadaraParser(context, MangaSource.HENTAI20, "hentai20.io") { + + override val tagPrefix = "manga-genre/" override val isNsfwSource = true } @@ -414,7 +423,7 @@ internal abstract class MadaraParser( class Hentai4Free(context: MangaLoaderContext) : MadaraParser(context, MangaSource.HENTAI_4FREE, "hentai4free.net") { - override val tagPrefix = "hentai-tag/" + override val tagPrefix = "hentai-genre/" override val isNsfwSource = true From 2c6c64fbe994e1e5f0535dd4bf55e8704a5a5d46 Mon Sep 17 00:00:00 2001 From: Saksham Shekher <95137948+OshekharO@users.noreply.github.com> Date: Tue, 14 Feb 2023 12:46:10 +0530 Subject: [PATCH 5/5] Add: ToonHunter --- .../site/mangareader/MangaReaderParser.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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 8dcbbc54..5a1b8499 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 @@ -488,6 +488,30 @@ internal abstract class MangaReaderParser( } } + @MangaSourceParser("TOONHUNTER", "Toon Hunter", "th") + class ToonHunterParser(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.TOONHUNTER, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("toonhunter.com", null) + + override val listUrl: String + get() = "/manga" + override val tableMode: Boolean + get() = false + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH) + + override suspend fun parseInfoList(docs: Document, manga: Manga, chapters: List): Manga { + val infoElement = docs.selectFirst("div.infox") + return manga.copy( + chapters = chapters, + description = infoElement?.selectFirst("div.entry-content")?.html(), + author = infoElement?.selectFirst(".flex-wrap div:contains(Author)")?.lastElementSibling()?.text(), + isNsfw = docs.selectFirst(".postbody .alr") != null, + ) + } + } + @MangaSourceParser("COSMICSCANS", "CosmicScans", "en") class CosmicScansParser(context: MangaLoaderContext) : MangaReaderParser(context, MangaSource.COSMICSCANS, pageSize = 20, searchPageSize = 10) {