From d28d6b17d86773569aa07f108fd42d8f6fef567f Mon Sep 17 00:00:00 2001 From: devi <70220050+davvarrr@users.noreply.github.com> Date: Tue, 20 Jun 2023 17:34:28 +0200 Subject: [PATCH] Update MangaReaderParser.kt add epsilonscan.fr ( +18 ) "fr" add legacy-scans.com "fr" --- .../site/mangareader/MangaReaderParser.kt | 53 +++++++++++++++++++ 1 file changed, 53 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 55821b68..012e8ad6 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 @@ -558,6 +558,59 @@ internal abstract class MangaReaderParser( .orEmpty(), ) } + } + + @MangaSourceParser("EPSILONSCAN", "Epsilonscan", "fr") + class EpsilonscanParser(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.EPSILONSCAN, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("epsilonscan.fr") + + override val listUrl: String + get() = "/manga" + override val tableMode: Boolean + get() = false + override val isNsfwSource: Boolean = true + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.FRENCH) + + 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(Auteur)")?.lastElementSibling()?.text(), + tags = infoElement?.select(".wd-full .mgen > a") + ?.mapNotNullToSet { getOrCreateTagMap()[it.text()] } + .orEmpty(), + ) + } + } + + @MangaSourceParser("LEGACY_SCANS", "Legacy Scans", "fr") + class LegacyScansParser(context: MangaLoaderContext) : + MangaReaderParser(context, MangaSource.LEGACY_SCANS, pageSize = 20, searchPageSize = 10) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("legacy-scans.com") + + override val listUrl: String + get() = "/manga" + override val tableMode: Boolean + get() = false + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.FRENCH) + + override suspend fun parseInfoList(docs: Document, manga: Manga, chapters: List): Manga { + val infoElement = docs.selectFirst("div.main-info") + return manga.copy( + chapters = chapters, + description = infoElement?.selectFirst("div.entry-content")?.html(), + author = infoElement?.selectFirst(".flex-wrap div:contains(Auteur(s))")?.lastElementSibling()?.text(), + tags = infoElement?.select(".wd-full .mgen > a") + ?.mapNotNullToSet { getOrCreateTagMap()[it.text()] } + .orEmpty(), + ) + } } @MangaSourceParser("KOMIKLOKAL", "KomikLokal", "id")