bapeey ac1575dd81 Move TMO and LectorManga to multisrc (#1002)
* Theme-lib when

* Lint

* Order generator

* Apply no-nsfw pref on request instead of init
2024-02-06 22:44:06 +00:00

73 lines
2.8 KiB
Kotlin

package eu.kanade.tachiyomi.extension.es.lectormanga
import eu.kanade.tachiyomi.multisrc.lectortmo.LectorTmo
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
class LectorManga : LectorTmo("LectorManga", "https://lectormanga.com", "es") {
override val id = 7925520943983324764
override fun popularMangaSelector() = ".col-6 .card"
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
setUrlWithoutDomain(element.select("a").attr("href"))
title = element.select("a").text()
thumbnail_url = element.select("img").attr("src")
}
override fun mangaDetailsParse(document: Document) = SManga.create().apply {
document.selectFirst("h1:has(small)")?.let { title = it.ownText() }
genre = document.select("a.py-2").joinToString(", ") {
it.text()
}
description = document.select(".col-12.mt-2").text()
status = parseStatus(document.select(".status-publishing").text())
thumbnail_url = document.select(".text-center img.img-fluid").attr("src")
}
override fun chapterListParse(response: Response): List<SChapter> = mutableListOf<SChapter>().apply {
val document = response.asJsoup()
// One-shot
if (document.select("#chapters").isEmpty()) {
return document.select(oneShotChapterListSelector).map { chapterFromElement(it, oneShotChapterName) }
}
// Regular list of chapters
val chapterNames = document.select("#chapters h4.text-truncate")
val chapterInfos = document.select("#chapters .chapter-list")
chapterNames.forEachIndexed { index, _ ->
val scanlator = chapterInfos[index].select("li")
if (getScanlatorPref()) {
scanlator.forEach { add(chapterFromElement(it, chapterNames[index].text())) }
} else {
scanlator.last { add(chapterFromElement(it, chapterNames[index].text())) }
}
}
}
override fun chapterFromElement(element: Element, chName: String) = SChapter.create().apply {
url = element.select("div.row > .text-right > a").attr("href")
name = chName
scanlator = element.select("div.col-12.text-truncate span").text()
date_upload = element.select("span.badge.badge-primary.p-2").first()?.text()?.let {
parseChapterDate(it)
} ?: 0
}
override fun imageRequest(page: Page) = GET(
url = page.imageUrl!!,
headers = headers.newBuilder()
.set("Referer", page.url.substringBefore("news/"))
.build(),
)
}