From b686abd1dcdf657d2a5756ce1c4cbdcccd1c3634 Mon Sep 17 00:00:00 2001 From: mao2009 <39354512+mao2009@users.noreply.github.com> Date: Sat, 24 Dec 2022 07:10:36 +0900 Subject: [PATCH] Add MangaRawRU. (#14614) Co-authored-by: mao09 <71811256+mao09@users.noreply.github.com> --- .../mangaraw/mangarawru/src/MangaRawRU.kt | 62 +++++++++++++++++++ .../multisrc/mangaraw/MangaRawGenerator.kt | 1 + 2 files changed, 63 insertions(+) create mode 100644 multisrc/overrides/mangaraw/mangarawru/src/MangaRawRU.kt diff --git a/multisrc/overrides/mangaraw/mangarawru/src/MangaRawRU.kt b/multisrc/overrides/mangaraw/mangarawru/src/MangaRawRU.kt new file mode 100644 index 000000000..ddf998671 --- /dev/null +++ b/multisrc/overrides/mangaraw/mangarawru/src/MangaRawRU.kt @@ -0,0 +1,62 @@ +package eu.kanade.tachiyomi.extension.ja.mangarawru + +import eu.kanade.tachiyomi.multisrc.mangaraw.MangaRawTheme +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.SManga +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import org.jsoup.select.Evaluator + +class MangaRawRU : MangaRawTheme("MangaRawRU", "https://mangaraw.ru") { + override fun popularMangaRequest(page: Int): Request = latestUpdatesRequest(page) + override val supportsLatest = false + + override fun String.sanitizeTitle(): String { + val index = lastIndexOf("Raw", ignoreCase = true) + if (index == -1) return this + return substring(0, index) + .trimEnd('(', ' ', ',') + } + + override fun popularMangaSelector() = "#list_videos_videos_items:nth-child(2) .thumb.item>a" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.attr("href")) + title = element.select("h3").text().sanitizeTitle() + thumbnail_url = element.select("img").attr("abs:src") + } + + override fun popularMangaNextPageSelector() = ".pagination__link" + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = + GET("$baseUrl/?s=$query&page=$page") + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaSelector(): String = ".thumb.item>a" + + override fun mangaDetailsParse(document: Document): SManga { + val manga = SManga.create() + manga.title = document.select("h1").text().sanitizeTitle() + manga.description = document.select(".video-info__box.b-content strong").text() + manga.thumbnail_url = document.select(".player-holder img").attr("abs:src") + + val genres = document.select(".category") + .map { element -> element.text() } + .toMutableSet() + + manga.genre = genres.toList().joinToString(", ") + + return manga + } + + override fun Document.getSanitizedDetails(): Element = this + override fun chapterListSelector() = ".chapter-l a" + override fun String.sanitizeChapter() = substringAfterLast(" – ").substringBeforeLast("漫画") + + override fun pageSelector(): Evaluator { + return Evaluator.Tag("img") + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangaraw/MangaRawGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangaraw/MangaRawGenerator.kt index 902b32ade..1a45c00cf 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangaraw/MangaRawGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangaraw/MangaRawGenerator.kt @@ -13,6 +13,7 @@ class MangaRawGenerator : ThemeSourceGenerator { override val sources = listOf( SingleLang("SyoSetu", "https://syosetu.top", "ja"), SingleLang("MangaRaw", "https://manga1001.in", "ja", pkgName = "manga9co", overrideVersionCode = 1), + SingleLang("MangaRawRU", "https://mangaraw.ru", "ja"), ) companion object {