From 9c05e3f8e85ebbd5a3f3986d0cf79c9dc0e82664 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 31 Aug 2024 15:58:37 +0300 Subject: [PATCH] Usagi parser --- .../parsers/site/ru/grouple/GroupleParser.kt | 4 +++- .../parsers/site/ru/grouple/UsagiParser.kt | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/UsagiParser.kt diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/GroupleParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/GroupleParser.kt index 51889727..234a9ce5 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/GroupleParser.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/GroupleParser.kt @@ -115,7 +115,9 @@ internal abstract class GroupleParser( override suspend fun getDetails(manga: Manga): Manga { val response = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).checkAuthRequired() val doc = response.parseHtml() - val root = doc.body().requireElementById("mangaBox").selectFirstOrThrow("div.leftContent") + val root = doc.body().requireElementById("mangaBox").run { + selectFirst("div.leftContent") ?: this + } val dateFormat = SimpleDateFormat("dd.MM.yy", Locale.US) val coverImg = root.selectFirst("div.subject-cover")?.selectFirst("img") val translations = if (config[splitTranslationsKey]) { diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/UsagiParser.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/UsagiParser.kt new file mode 100644 index 00000000..b39962a8 --- /dev/null +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/ru/grouple/UsagiParser.kt @@ -0,0 +1,19 @@ +package org.koitharu.kotatsu.parsers.site.ru.grouple + +import org.koitharu.kotatsu.parsers.MangaLoaderContext +import org.koitharu.kotatsu.parsers.MangaSourceParser +import org.koitharu.kotatsu.parsers.config.ConfigKey +import org.koitharu.kotatsu.parsers.model.MangaParserSource + +@MangaSourceParser("USAGI", "Usagi", "ru") +internal class UsagiParser( + context: MangaLoaderContext, +) : GroupleParser(context, MangaParserSource.USAGI, 1) { + + override val configKeyDomain = ConfigKey.Domain(*domains) + + companion object { + + val domains = arrayOf("web.usagi.one") + } +}