|
|
|
@ -32,19 +32,19 @@ class Manhwa18Parser(context: MangaLoaderContext) :
|
|
|
|
override suspend fun getDetails(manga: Manga): Manga {
|
|
|
|
override suspend fun getDetails(manga: Manga): Manga {
|
|
|
|
val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
|
|
|
|
val docs = webClient.httpGet(manga.url.toAbsoluteUrl(domain)).parseHtml()
|
|
|
|
val cardInfoElement = docs.selectFirst("div.series-information")
|
|
|
|
val cardInfoElement = docs.selectFirst("div.series-information")
|
|
|
|
val author = cardInfoElement?.selectFirst(".info-name:contains(Author(s))")?.parent()
|
|
|
|
val author = cardInfoElement?.selectFirst(".info-name:contains(Author)")?.parent()
|
|
|
|
?.select("a")
|
|
|
|
?.select("a")
|
|
|
|
?.joinToString(", ") { it.text() }
|
|
|
|
?.joinToString(", ") { it.text() }
|
|
|
|
val availableTags = tagsMap.get()
|
|
|
|
val availableTags = tagsMap.get()
|
|
|
|
val tags = cardInfoElement?.selectFirst(".info-name:contains(Genre(s))")?.parent()
|
|
|
|
val tags = cardInfoElement?.selectFirst(".info-name:contains(Genre)")?.parent()
|
|
|
|
?.select("a")
|
|
|
|
?.select("a")
|
|
|
|
?.mapNotNullToSet { availableTags[it.text().lowercase(Locale.ENGLISH)] }
|
|
|
|
?.mapNotNullToSet { availableTags[it.text().lowercase(Locale.ENGLISH)] }
|
|
|
|
val state = cardInfoElement?.selectFirst(".info-name:contains(Status)")?.parent()
|
|
|
|
val state = cardInfoElement?.selectFirst(".info-name:contains(Status)")?.parent()
|
|
|
|
?.selectFirst("a")
|
|
|
|
?.selectFirst("a")
|
|
|
|
?.let {
|
|
|
|
?.let {
|
|
|
|
when (it.text()) {
|
|
|
|
when (it.text().lowercase()) {
|
|
|
|
"On going" -> MangaState.ONGOING
|
|
|
|
"on going" -> MangaState.ONGOING
|
|
|
|
"Completed" -> MangaState.FINISHED
|
|
|
|
"completed" -> MangaState.FINISHED
|
|
|
|
else -> null
|
|
|
|
else -> null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -56,7 +56,6 @@ class Manhwa18Parser(context: MangaLoaderContext) :
|
|
|
|
tags = tags.orEmpty(),
|
|
|
|
tags = tags.orEmpty(),
|
|
|
|
state = state,
|
|
|
|
state = state,
|
|
|
|
chapters = docs.select(".card-body > .list-chapters > a").mapChapters(reversed = true) { index, element ->
|
|
|
|
chapters = docs.select(".card-body > .list-chapters > a").mapChapters(reversed = true) { index, element ->
|
|
|
|
// attrAsRelativeUrl only return page url without the '/'
|
|
|
|
|
|
|
|
val chapterUrl = element.attrAsAbsoluteUrlOrNull("href")?.toRelativeUrl(domain)
|
|
|
|
val chapterUrl = element.attrAsAbsoluteUrlOrNull("href")?.toRelativeUrl(domain)
|
|
|
|
?: return@mapChapters null
|
|
|
|
?: return@mapChapters null
|
|
|
|
val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text())
|
|
|
|
val uploadDate = parseUploadDate(element.selectFirst(".chapter-time")?.text())
|
|
|
|
|