Add Koitharu optimization, and rename Manga origines

pull/203/head
devi 3 years ago
parent b9eb6363b7
commit 141bca517d

@ -17,10 +17,12 @@ import org.koitharu.kotatsu.parsers.model.SortOrder
import org.koitharu.kotatsu.parsers.network.UserAgents
import org.koitharu.kotatsu.parsers.util.attrAsAbsoluteUrl
import org.koitharu.kotatsu.parsers.util.attrAsAbsoluteUrlOrNull
import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrlOrNull
import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.generateUid
import org.koitharu.kotatsu.parsers.util.mapChapters
import org.koitharu.kotatsu.parsers.util.mapNotNullToSet
import org.koitharu.kotatsu.parsers.util.mapToSet
import org.koitharu.kotatsu.parsers.util.parseFailed
import org.koitharu.kotatsu.parsers.util.parseHtml
import org.koitharu.kotatsu.parsers.util.requireElementById
@ -189,7 +191,8 @@ internal class ScantradUnion(context: MangaLoaderContext) : PagedMangaParser(con
val root = doc.body().selectFirst("#webtoon")
?: throw ParseException("Root not found", fullUrl)
return root.select("img").map { img ->
val url = img.attr("data-src") ?: img.attr("src") ?: img.parseFailed("Image src not found")
val url = img.attrAsRelativeUrlOrNull("data-src") ?: img.attrAsRelativeUrlOrNull("src")
?: img.parseFailed("Image src not found")
MangaPage(
id = generateUid(url),
url = url,
@ -204,7 +207,7 @@ internal class ScantradUnion(context: MangaLoaderContext) : PagedMangaParser(con
val body = doc.body()
val root = body.select(".asp_gochosen")[1]
val list = root?.select("option").orEmpty()
return list.mapNotNullToSet { li ->
return list.mapToSet { li ->
MangaTag(
key = li.text(),

@ -6,9 +6,9 @@ import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import java.util.Locale
@MangaSourceParser("MANGASORIGINES", "Mangas Origines", "fr")
internal class MangasOrigines(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASORIGINES, "mangas-origines.xyz") {
@MangaSourceParser("MANGASORIGINESUNOFFICIAL", "Mangas Origines ( unofficial )", "fr")
internal class MangasOriginesUnofficial(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.MANGASORIGINESUNOFFICIAL, "mangas-origines.xyz") {
override val datePattern = "MMMM d, yyyy"

@ -14,7 +14,7 @@ import org.koitharu.kotatsu.parsers.util.attrAsRelativeUrl
import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.generateUid
import org.koitharu.kotatsu.parsers.util.mapChapters
import org.koitharu.kotatsu.parsers.util.mapNotNullToSet
import org.koitharu.kotatsu.parsers.util.mapToSet
import org.koitharu.kotatsu.parsers.util.parseHtml
import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl
import org.koitharu.kotatsu.parsers.util.toTitleCase
@ -84,7 +84,7 @@ internal class SwaTeam(context: MangaLoaderContext) :
state = mangaState,
author = author,
isNsfw = manga.isNsfw || nsfw,
tags = docs.select("div.spe a[rel*=tag]").mapNotNullToSet { a ->
tags = docs.select("div.spe a[rel*=tag]").mapToSet { a ->
MangaTag(
key = a.attr("href").removeSuffix("/").substringAfterLast('/'),
title = a.text().toTitleCase(),

@ -4,7 +4,6 @@ import org.jsoup.nodes.Element
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.config.ConfigKey
import org.koitharu.kotatsu.parsers.exception.ParseException
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaSource
@ -13,6 +12,8 @@ import org.koitharu.kotatsu.parsers.util.domain
import org.koitharu.kotatsu.parsers.util.generateUid
import org.koitharu.kotatsu.parsers.util.parseFailed
import org.koitharu.kotatsu.parsers.util.parseHtml
import org.koitharu.kotatsu.parsers.util.requireElementById
import org.koitharu.kotatsu.parsers.util.selectFirstOrThrow
import org.koitharu.kotatsu.parsers.util.toAbsoluteUrl
import org.koitharu.kotatsu.parsers.util.toRelativeUrl
import java.text.SimpleDateFormat
@ -29,8 +30,7 @@ internal class LelManga(context: MangaLoaderContext) :
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val fullUrl = chapter.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(fullUrl).parseHtml()
val root = doc.body().selectFirst("div.maincontent")?.selectFirst("div#readerarea")
?: throw ParseException("Root not found", fullUrl)
val root = doc.body().selectFirstOrThrow("div.maincontent").requireElementById("readerarea")
return root.select("img").map { img ->
val url = img.src()?.toRelativeUrl(domain) ?: img.parseFailed("Image src not found")
MangaPage(

Loading…
Cancel
Save