minor fixes and add small sources

pull/286/head
devi 3 years ago
parent 3d7e62d2fe
commit 27c29f99d9

@ -2,122 +2,11 @@ package org.koitharu.kotatsu.parsers.site.madara.en
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.Manga
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.model.MangaTag
import org.koitharu.kotatsu.parsers.model.SortOrder
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
import org.koitharu.kotatsu.parsers.util.*
@MangaSourceParser("BESTMANHUACOM", "Best Manhua .Com", "en")
internal class BestManhuaCom(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BESTMANHUACOM, "bestmanhua.com", 20) {
override val datePattern = "dd MMMM yyyy"
override val tagPrefix = "genres/"
override val listUrl = "all-manga/"
MadaraParser(context, MangaSource.BESTMANHUACOM, "bestmanhua.com", 10) {
override val withoutAjax = true
override val selectDesc = "div.dsct"
override val selectTestAsync = "div.panel-manga-chapter"
override val selectDate = "span.chapter-time"
override val selectChapter = "li.a-h"
override val selectBodyPage = "div.manga-content div.read-content"
override val selectPage = "div.image-placeholder"
override suspend fun getListPage(
page: Int,
query: String?,
tags: Set<MangaTag>?,
sortOrder: SortOrder,
): List<Manga> {
val tag = tags.oneOrThrowIfMany()
val url = buildString {
append("https://")
append(domain)
val pages = page + 1
when {
!query.isNullOrEmpty() -> {
append("/page/")
append(pages.toString())
append("/?s=")
append(query.urlEncoded())
append("&post_type=wp-manga&")
}
!tags.isNullOrEmpty() -> {
append("/$tagPrefix")
append(tag?.key.orEmpty())
append("/")
append(pages.toString())
append("?")
}
else -> {
append("/$listUrl")
append(pages.toString())
append("?")
}
}
append("sort=")
when (sortOrder) {
SortOrder.POPULARITY -> append("most-viewd")
SortOrder.UPDATED -> append("latest-updated")
SortOrder.NEWEST -> append("release-date")
SortOrder.ALPHABETICAL -> append("name-az")
SortOrder.RATING -> append("rating")
}
}
val doc = webClient.httpGet(url).parseHtml()
return doc.select("div.page-item").map { div ->
val href = div.selectFirst("a")?.attrAsRelativeUrlOrNull("href") ?: div.parseFailed("Link not found")
val summary = div.selectFirstOrThrow(".bigor-manga")
Manga(
id = generateUid(href),
url = href,
publicUrl = href.toAbsoluteUrl(div.host ?: domain),
coverUrl = div.selectFirst("img")?.src().orEmpty(),
title = summary.selectFirst("h3")?.text().orEmpty(),
altTitle = null,
rating = div.selectFirstOrThrow("div.item-rate span").ownText().toFloatOrNull()?.div(5f) ?: -1f,
tags = emptySet(),
author = null,
state = null,
source = source,
isNsfw = isNsfwSource,
)
}
}
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val fullUrl = chapter.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(fullUrl).parseHtml()
val chapterId =
doc.selectFirst("script:containsData(chapter_id = )")?.toString()?.substringAfter("chapter_id = ")
?.substringBefore(",")
val json =
webClient.httpGet("https://$domain/ajax/image/list/chap/$chapterId?mode=vertical&quality=high").parseJson()
val html = json.getString("html").split("/div>")
val pages = ArrayList<MangaPage>()
html.map { t ->
if (t.contains("data-src=")) {
val url = t.substringAfter("data-src=\"").substringBefore("\"")
pages.add(
MangaPage(
id = generateUid(url),
url = url,
preview = null,
source = source,
),
)
}
}
return pages
}
}

@ -0,0 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.es
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("BARMANGA", "Bar Manga", "es")
internal class BarManga(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.BARMANGA, "barmanga.com") {
override val datePattern = "MM/dd/yyyy"
}

@ -0,0 +1,12 @@
package org.koitharu.kotatsu.parsers.site.madara.pt
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaSource
import org.koitharu.kotatsu.parsers.site.madara.MadaraParser
@MangaSourceParser("TABERU", "Taberu", "pt")
internal class Taberu(context: MangaLoaderContext) :
MadaraParser(context, MangaSource.TABERU, "taberu.org", 10) {
override val datePattern: String = "dd/MM/yyyy"
}

@ -7,12 +7,4 @@ import org.koitharu.kotatsu.parsers.site.mangareader.MangaReaderParser
@MangaSourceParser("ORIGAMIORPHEANS", "Origami Orpheans", "pt")
internal class Origamiorpheans(context: MangaLoaderContext) :
MangaReaderParser(
context,
MangaSource.ORIGAMIORPHEANS,
"origami-orpheans.com.br",
pageSize = 20,
searchPageSize = 20,
) {
override val datePattern = "MMM d, yyyy"
}
MangaReaderParser(context, MangaSource.ORIGAMIORPHEANS, "origami-orpheans.com", pageSize = 20, searchPageSize = 10)

Loading…
Cancel
Save