[HamTruyen] Add source
parent
2ca740a85d
commit
eaab76aa9e
@ -1 +1 @@
|
|||||||
total: 1182
|
total: 1183
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
package org.koitharu.kotatsu.parsers.site.wpcomics.vi
|
||||||
|
|
||||||
|
import kotlinx.coroutines.async
|
||||||
|
import kotlinx.coroutines.coroutineScope
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaLoaderContext
|
||||||
|
import org.koitharu.kotatsu.parsers.MangaSourceParser
|
||||||
|
import org.koitharu.kotatsu.parsers.config.ConfigKey
|
||||||
|
import org.koitharu.kotatsu.parsers.model.Manga
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
||||||
|
import org.koitharu.kotatsu.parsers.model.MangaState
|
||||||
|
import org.koitharu.kotatsu.parsers.model.RATING_UNKNOWN
|
||||||
|
import org.koitharu.kotatsu.parsers.site.wpcomics.WpComicsParser
|
||||||
|
import org.koitharu.kotatsu.parsers.util.*
|
||||||
|
|
||||||
|
@MangaSourceParser("HAMTRUYEN", "Ham Truyện", "vi")
|
||||||
|
internal class HamTruyen(context: MangaLoaderContext) :
|
||||||
|
WpComicsParser(context, MangaParserSource.HAMTRUYEN, "hamtruyen.vn", 44) {
|
||||||
|
|
||||||
|
override suspend fun getDetails(manga: Manga): Manga = coroutineScope {
|
||||||
|
val fullUrl = manga.url.toAbsoluteUrl(domain)
|
||||||
|
val doc = webClient.httpGet(fullUrl).parseHtml()
|
||||||
|
val chaptersDeferred = async { getChapters(doc, reversed = false) }
|
||||||
|
val tagMap = getOrCreateTagMap()
|
||||||
|
val tagsElement = doc.select("li.kind p.col-xs-8 a")
|
||||||
|
val mangaTags = tagsElement.mapNotNullToSet { tagMap[it.text()] }
|
||||||
|
manga.copy(
|
||||||
|
description = doc.selectFirst(selectDesc)?.html(),
|
||||||
|
altTitle = doc.selectFirst("h2.other-name")?.textOrNull(),
|
||||||
|
author = doc.body().select(selectAut).textOrNull(),
|
||||||
|
state = doc.selectFirst(selectState)?.let {
|
||||||
|
when (it.text()) {
|
||||||
|
in ongoing -> MangaState.ONGOING
|
||||||
|
in finished -> MangaState.FINISHED
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
tags = mangaTags,
|
||||||
|
rating = doc.selectFirst("div.star input")?.attr("value")?.toFloatOrNull()?.div(5f) ?: RATING_UNKNOWN,
|
||||||
|
chapters = chaptersDeferred.await(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue