From d27c208ab7bbba26ac794ebe7d9c85a50f54076b Mon Sep 17 00:00:00 2001 From: devi <70220050+davvarrr@users.noreply.github.com> Date: Sat, 24 Jun 2023 23:15:21 +0200 Subject: [PATCH] Create AiyuMangaScanlation.kt add aiyumangascanlation.com "es" --- .../site/madara/AiyuMangaScanlation.kt | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/AiyuMangaScanlation.kt diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/AiyuMangaScanlation.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/AiyuMangaScanlation.kt new file mode 100644 index 00000000..ca2361ac --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/madara/AiyuMangaScanlation.kt @@ -0,0 +1,51 @@ +package org.koitharu.kotatsu.parsers.site.madara + +import org.jsoup.nodes.Element +import org.koitharu.kotatsu.parsers.MangaLoaderContext +import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.model.Manga +import org.koitharu.kotatsu.parsers.model.MangaChapter +import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.parsers.model.MangaState +import org.koitharu.kotatsu.parsers.util.mapToSet +import org.koitharu.kotatsu.parsers.util.selectFirstOrThrow + +@MangaSourceParser("AIYUMANGASCANLATION", "AiyuMangaScanlation", "es") +internal class AiyuMangaScanlation(context: MangaLoaderContext) : + Madara6Parser(context, MangaSource.AIYUMANGASCANLATION, "aiyumangascanlation.com") { + + override val tagPrefix = "manga-genre/" + override val datePattern = "MM/dd/yyyy" + + override fun parseDetails(manga: Manga, body: Element, chapters: List): Manga { + val root = body.selectFirstOrThrow(".site-content") + val postContent = root.selectFirstOrThrow(".post-content") + val tags = postContent.getElementsContainingOwnText("Genre(s)") + .firstOrNull()?.tableValue() + ?.getElementsByAttributeValueContaining("href", tagPrefix) + ?.mapToSet { a -> a.asMangaTag() } ?: manga.tags + return manga.copy( + description = postContent.getElementsContainingOwnText("Summary") + .firstOrNull()?.tableValue()?.text()?.trim(), + altTitle = postContent.getElementsContainingOwnText("Alternative") + .firstOrNull()?.tableValue()?.text()?.trim(), + state = postContent.getElementsContainingOwnText("Status") + .firstOrNull()?.tableValue()?.text()?.asMangaState(), + tags = tags, + isNsfw = body.hasClass("adult-content"), + chapters = chapters, + ) + } + + override fun String.asMangaState(): MangaState? = when (this) { + "OnGoing", + "Upcoming", + -> MangaState.ONGOING + + "Completed", + "Dropped", + -> MangaState.FINISHED + + else -> null + } +}