From fb22eb5facd7d4f5926b7e9f32930d18bda80ae5 Mon Sep 17 00:00:00 2001 From: Zakhar Timoshenko Date: Wed, 28 Dec 2022 23:10:17 +0300 Subject: [PATCH] [Tempest Fan Sub] New parser (closes #56) --- .../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 13cf138c..f3205606 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 @@ -383,4 +383,28 @@ internal abstract class MangaReaderParser( ) } } + + @MangaSourceParser("TEMPEST", "Tempest Manga", "tr") + class TempestParser(override val context: MangaLoaderContext) : MangaReaderParser(MangaSource.TEMPEST, pageSize = 30, searchPageSize = 30) { + override val configKeyDomain: ConfigKey.Domain + get() = ConfigKey.Domain("manga.tempestfansub.com", null) + + override val listUrl: String get() = "/manga" + override val tableMode: Boolean get() = false + + override val chapterDateFormat: SimpleDateFormat = SimpleDateFormat("MMM d, yyyy", Locale("tr")) + + 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(Yapımcı)")?.lastElementSibling()?.text(), + tags = infoElement?.select(".wd-full .mgen > a") + ?.mapNotNullToSet { getOrCreateTagMap()[it.text()] } + .orEmpty(), + isNsfw = docs.selectFirst(".postbody .alr") != null, + ) + } + } } \ No newline at end of file