|
|
|
@ -118,14 +118,22 @@ internal class MuitoHentai(context: MangaLoaderContext) : PagedMangaParser(conte
|
|
|
|
|
|
|
|
|
|
|
|
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
|
|
|
|
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
|
|
|
|
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
|
|
|
|
val doc = webClient.httpGet(chapter.url.toAbsoluteUrl(domain)).parseHtml()
|
|
|
|
val data = doc.selectFirstOrThrow("script:containsData(var arr = [)").data()
|
|
|
|
val script = doc.selectFirstOrThrow("script:containsData(var arr =)").data()
|
|
|
|
val images = data.substringAfter("[").substringBefore("];").replace("\"", "").split(",")
|
|
|
|
val src = script.substringAfter("var arr = [").substringBefore("];").replace("\"", "").split(",")
|
|
|
|
return images.map { img ->
|
|
|
|
.map { it.trim() }
|
|
|
|
|
|
|
|
.filter { it.isNotEmpty() }
|
|
|
|
|
|
|
|
.map { url ->
|
|
|
|
|
|
|
|
if (url.startsWith("https://$domain/")) {
|
|
|
|
|
|
|
|
url.substringAfter("$domain/")
|
|
|
|
|
|
|
|
} else url
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return src.map { url ->
|
|
|
|
MangaPage(
|
|
|
|
MangaPage(
|
|
|
|
id = generateUid(img),
|
|
|
|
id = generateUid(url),
|
|
|
|
url = img,
|
|
|
|
url = url.takeUnless { it.startsWith("https://") }?.let { "https://$domain/$it" } ?: url,
|
|
|
|
preview = null,
|
|
|
|
preview = null,
|
|
|
|
source = source,
|
|
|
|
source = source
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|