WeLoveManga: fix covers and pages (#17248)

* WeLoveManga: fix covers, pages

* nsfw
This commit is contained in:
Vetle Ledaal 2023-07-24 22:51:59 +02:00 committed by GitHub
parent 4ec625f582
commit 72c75cd579
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 10 deletions

View File

@ -1,14 +1,12 @@
package eu.kanade.tachiyomi.extension.ja.rawlh package eu.kanade.tachiyomi.extension.ja.rawlh
import android.util.Base64
import eu.kanade.tachiyomi.multisrc.fmreader.FMReader import eu.kanade.tachiyomi.multisrc.fmreader.FMReader
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SManga
import okhttp3.Request import okhttp3.Request
import org.jsoup.nodes.Attribute
import org.jsoup.nodes.Document import org.jsoup.nodes.Document
import org.jsoup.nodes.Element import org.jsoup.nodes.Element
import java.nio.charset.Charset
class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") { class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") {
// Formerly "RawLH" // Formerly "RawLH"
@ -17,13 +15,9 @@ class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") {
override val chapterUrlSelector = "" override val chapterUrlSelector = ""
override fun pageListParse(document: Document): List<Page> { override fun pageListParse(document: Document): List<Page> {
fun Element.decoded(): String { fun Element.decoded(): String {
val attr = this.attributes().map(Attribute::key).maxByOrNull(kotlin.String::length) ?: "src" return this.attr("data-src").trimEnd()
return if (!this.attr(attr).contains(".")) {
Base64.decode(this.attr(attr), Base64.DEFAULT).toString(Charset.defaultCharset())
} else {
this.attr("abs:$attr")
}
} }
return document.select(pageListImageSelector).mapIndexed { i, img -> return document.select(pageListImageSelector).mapIndexed { i, img ->
Page(i, document.location(), img.decoded()) Page(i, document.location(), img.decoded())
} }
@ -31,4 +25,20 @@ class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") {
// Referer needs to be chapter URL // Referer needs to be chapter URL
override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().set("Referer", page.url).build()) 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\(['"]?(.*?)['"]?\)""")
}
} }

View File

@ -20,7 +20,7 @@ class FMReaderGenerator : ThemeSourceGenerator {
SingleLang("ManhuaRock", "https://manhuarock.net", "vi", overrideVersionCode = 1), SingleLang("ManhuaRock", "https://manhuarock.net", "vi", overrideVersionCode = 1),
SingleLang("Manhwa18", "https://manhwa18.com", "en", isNsfw = true, overrideVersionCode = 2), SingleLang("Manhwa18", "https://manhwa18.com", "en", isNsfw = true, overrideVersionCode = 2),
SingleLang("Say Truyen", "https://saytruyenvip.com", "vi", overrideVersionCode = 3), 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("Manga1000", "https://manga1000.top", "ja"),
SingleLang("WeLoveMangaOne", "https://welovemanga.one", "ja", isNsfw = true, overrideVersionCode = 1), SingleLang("WeLoveMangaOne", "https://welovemanga.one", "ja", isNsfw = true, overrideVersionCode = 1),
) )