|
|
|
@ -75,8 +75,8 @@ internal class DamCoNuong(context: MangaLoaderContext) :
|
|
|
|
filter.states.forEach {
|
|
|
|
filter.states.forEach {
|
|
|
|
append(
|
|
|
|
append(
|
|
|
|
when (it) {
|
|
|
|
when (it) {
|
|
|
|
MangaState.ONGOING -> "2"
|
|
|
|
MangaState.ONGOING -> "2,"
|
|
|
|
MangaState.FINISHED -> "1"
|
|
|
|
MangaState.FINISHED -> "1,"
|
|
|
|
else -> "2,1"
|
|
|
|
else -> "2,1"
|
|
|
|
},
|
|
|
|
},
|
|
|
|
)
|
|
|
|
)
|
|
|
|
@ -93,6 +93,11 @@ internal class DamCoNuong(context: MangaLoaderContext) :
|
|
|
|
append(filter.query.urlEncoded())
|
|
|
|
append(filter.query.urlEncoded())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (filter.tagsExclude.isNotEmpty()) {
|
|
|
|
|
|
|
|
append("&filter[reject_genres]=")
|
|
|
|
|
|
|
|
append(filter.tagsExclude.joinTo(this, ",") { it.key })
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
append("&page=$page")
|
|
|
|
append("&page=$page")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -101,30 +106,33 @@ internal class DamCoNuong(context: MangaLoaderContext) :
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private fun parseMangaList(doc: Document): List<Manga> {
|
|
|
|
private fun parseMangaList(doc: Document): List<Manga> {
|
|
|
|
return doc.select("div.border.rounded-lg.border-gray-300.dark\\:border-dark-blue.bg-white.dark\\:bg-fire-blue.manga-vertical")
|
|
|
|
return doc.select(
|
|
|
|
.map { element ->
|
|
|
|
"div.border.rounded-xl.border-gray-300.dark\\:border-dark-blue.bg-white.dark\\:bg-fire-blue"
|
|
|
|
val mainA = element.selectFirstOrThrow("div.relative a")
|
|
|
|
).map { element ->
|
|
|
|
val href = mainA.attrAsRelativeUrl("href")
|
|
|
|
val mainA = element.selectFirstOrThrow("div.relative a")
|
|
|
|
val title = element.selectFirst("div.latest-chapter a.text-white.capitalize")?.textOrNull() ?: "No name"
|
|
|
|
val href = mainA.attrAsRelativeUrl("href")
|
|
|
|
val coverUrl = element.selectFirst("img.rounded-t-lg.cover.lazyload")?.let { img ->
|
|
|
|
val title = mainA.selectFirst("div.cover-frame img")?.attr("alt")
|
|
|
|
img.attr("data-src").takeUnless { it.isNullOrEmpty() } ?: img.requireSrc()
|
|
|
|
?.takeIf { it.isNotBlank() }
|
|
|
|
}
|
|
|
|
?: element.selectFirst("div.p-3 h3 a")?.text()?.takeIf { it.isNotBlank() }
|
|
|
|
|
|
|
|
?: "Không có tiêu đề"
|
|
|
|
Manga(
|
|
|
|
val coverUrl = mainA.select("div.cover-frame img").attr("data-src").takeIf { it.isNotBlank() }
|
|
|
|
id = generateUid(href),
|
|
|
|
?: mainA.select("div.cover-frame img").attr("src")
|
|
|
|
title = title,
|
|
|
|
|
|
|
|
altTitles = emptySet(),
|
|
|
|
Manga(
|
|
|
|
url = href,
|
|
|
|
id = generateUid(href),
|
|
|
|
publicUrl = href.toAbsoluteUrl(domain),
|
|
|
|
title = title,
|
|
|
|
rating = RATING_UNKNOWN,
|
|
|
|
altTitles = emptySet(),
|
|
|
|
contentRating = ContentRating.ADULT,
|
|
|
|
url = href,
|
|
|
|
coverUrl = coverUrl,
|
|
|
|
publicUrl = href.toAbsoluteUrl(domain),
|
|
|
|
tags = emptySet(),
|
|
|
|
rating = RATING_UNKNOWN,
|
|
|
|
state = null,
|
|
|
|
contentRating = ContentRating.ADULT,
|
|
|
|
authors = emptySet(),
|
|
|
|
coverUrl = coverUrl,
|
|
|
|
source = source,
|
|
|
|
tags = emptySet(),
|
|
|
|
)
|
|
|
|
state = null,
|
|
|
|
}
|
|
|
|
authors = emptySet(),
|
|
|
|
|
|
|
|
source = source,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override suspend fun getDetails(manga: Manga): Manga {
|
|
|
|
override suspend fun getDetails(manga: Manga): Manga {
|
|
|
|
|