fixed page duplicated

master
Naga 2 years ago
parent e74985d870
commit 3efb5d8520

@ -175,12 +175,14 @@ internal class ReaperComics(context: MangaLoaderContext) :
val url = "https://api.$domain/chapter/query?page=1&perPage=9999&series_id=$seriesid"
val response = makeRequest(url)
val data = response.getJSONArray("data")
val chapters = data.mapJSONIndexed { index, it ->
return manga.copy(
chapters = data.mapJSONIndexed { index, it ->
val chapterUrl = "/series/${it.getJSONObject("series").getString("series_slug")}/${it.getString("chapter_slug")}"
MangaChapter(
id = it.getLong("id"),
name = it.getString("chapter_name"),
number = data.length() - index,
number = (data.length() - index).toFloat(),
volume = 0,
url = chapterUrl,
scanlator = null,
uploadDate = parseChapterDate(dateFormat, it.getString("created_at")),
@ -188,8 +190,6 @@ internal class ReaperComics(context: MangaLoaderContext) :
source = source,
)
}
return manga.copy(
chapters = chapters
)
}
@ -205,14 +205,27 @@ internal class ReaperComics(context: MangaLoaderContext) :
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
return doc.select(pageSelector).map { img ->
val url = img.src()?.toRelativeUrl(domain) ?: img.parseFailed("Image src not found")
val processedUrls = mutableSetOf<String>()
return doc.select(pageSelector).mapNotNull { img ->
val url = img.attr("data-cfsrc").takeIf { it.isNotBlank() }
?: img.attr("src").takeIf { it.isNotBlank() }
?: img.selectFirst("noscript img")?.attr("src")
?: return@mapNotNull null
val relativeUrl = url.toRelativeUrl(domain)
if (relativeUrl !in processedUrls) {
processedUrls.add(relativeUrl)
MangaPage(
id = generateUid(url),
url = url,
id = generateUid(relativeUrl),
url = relativeUrl,
preview = null,
source = source,
)
} else {
null
}
}
}

Loading…
Cancel
Save