From 72c75cd5790cd4d3ef5dabafccd2fde80fa9a8fa Mon Sep 17 00:00:00 2001 From: Vetle Ledaal Date: Mon, 24 Jul 2023 22:51:59 +0200 Subject: [PATCH] WeLoveManga: fix covers and pages (#17248) * WeLoveManga: fix covers, pages * nsfw --- .../fmreader/rawlh/src/WeLoveManga.kt | 28 +++++++++++++------ .../multisrc/fmreader/FMReaderGenerator.kt | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/multisrc/overrides/fmreader/rawlh/src/WeLoveManga.kt b/multisrc/overrides/fmreader/rawlh/src/WeLoveManga.kt index a6c8e05cb7..b9431823c4 100644 --- a/multisrc/overrides/fmreader/rawlh/src/WeLoveManga.kt +++ b/multisrc/overrides/fmreader/rawlh/src/WeLoveManga.kt @@ -1,14 +1,12 @@ package eu.kanade.tachiyomi.extension.ja.rawlh -import android.util.Base64 import eu.kanade.tachiyomi.multisrc.fmreader.FMReader import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SManga import okhttp3.Request -import org.jsoup.nodes.Attribute import org.jsoup.nodes.Document import org.jsoup.nodes.Element -import java.nio.charset.Charset class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") { // Formerly "RawLH" @@ -17,13 +15,9 @@ class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") { override val chapterUrlSelector = "" override fun pageListParse(document: Document): List { fun Element.decoded(): String { - val attr = this.attributes().map(Attribute::key).maxByOrNull(kotlin.String::length) ?: "src" - return if (!this.attr(attr).contains(".")) { - Base64.decode(this.attr(attr), Base64.DEFAULT).toString(Charset.defaultCharset()) - } else { - this.attr("abs:$attr") - } + return this.attr("data-src").trimEnd() } + return document.select(pageListImageSelector).mapIndexed { i, img -> Page(i, document.location(), img.decoded()) } @@ -31,4 +25,20 @@ class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") { // Referer needs to be chapter URL override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().set("Referer", page.url).build()) + + override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply { + element.select(headerSelector).let { + setUrlWithoutDomain(it.attr("abs:href")) + title = it.text() + } + thumbnail_url = element + .select("div.content.img-in-ratio") + .first()!! + .attr("style") + .let { BACKGROUND_IMAGE_REGEX.find(it)?.groups?.get(1)?.value } + } + + companion object { + val BACKGROUND_IMAGE_REGEX = Regex("""url\(['"]?(.*?)['"]?\)""") + } } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt index 6fd8fc7eeb..6ff5091f91 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt @@ -20,7 +20,7 @@ class FMReaderGenerator : ThemeSourceGenerator { SingleLang("ManhuaRock", "https://manhuarock.net", "vi", overrideVersionCode = 1), SingleLang("Manhwa18", "https://manhwa18.com", "en", isNsfw = true, overrideVersionCode = 2), SingleLang("Say Truyen", "https://saytruyenvip.com", "vi", overrideVersionCode = 3), - SingleLang("WeLoveManga", "https://weloma.art", "ja", pkgName = "rawlh", overrideVersionCode = 4), + SingleLang("WeLoveManga", "https://weloma.art", "ja", pkgName = "rawlh", isNsfw = true, overrideVersionCode = 5), SingleLang("Manga1000", "https://manga1000.top", "ja"), SingleLang("WeLoveMangaOne", "https://welovemanga.one", "ja", isNsfw = true, overrideVersionCode = 1), )