master
Draken 2 years ago committed by Koitharu
parent 0e5e4d57c5
commit 3ae6ffb8d0

@ -1,12 +1,50 @@
package org.koitharu.kotatsu.parsers.site.liliana.vi
import org.jsoup.Jsoup
import org.koitharu.kotatsu.parsers.MangaLoaderContext
import org.koitharu.kotatsu.parsers.MangaSourceParser
import org.koitharu.kotatsu.parsers.model.MangaChapter
import org.koitharu.kotatsu.parsers.model.MangaPage
import org.koitharu.kotatsu.parsers.model.MangaParserSource
import org.koitharu.kotatsu.parsers.site.liliana.LilianaParser
import org.koitharu.kotatsu.parsers.Broken
import org.koitharu.kotatsu.parsers.util.*
@Broken
@MangaSourceParser("DOCTRUYEN5S", "DocTruyen5s", "vi")
internal class DocTruyen5s(context: MangaLoaderContext) :
LilianaParser(context, MangaParserSource.DOCTRUYEN5S, "dongmoe.com")
LilianaParser(context, MangaParserSource.DOCTRUYEN5S, "dongmoe.com") {
override suspend fun getPages(chapter: MangaChapter): List<MangaPage> {
val fullUrl = chapter.url.toAbsoluteUrl(domain)
val doc = webClient.httpGet(fullUrl).parseHtml()
val script = doc.selectFirst("script:containsData(const CHAPTER_ID)")?.data()
?: throw Exception("Failed to get chapter id")
val chapterId = script.substringAfter("const CHAPTER_ID = ").substringBefore(';')
val ajaxUrl = buildString {
append("https://")
append(domain)
append("/ajax/image/list/chap/")
append(chapterId)
}
val responseJson = webClient.httpGet(ajaxUrl).parseJson()
if (!responseJson.optBoolean("status", false)) {
throw Exception(responseJson.optString("msg"))
}
val pageListDoc = Jsoup.parse(responseJson.getString("html"))
return pageListDoc.select("div.separator a").map { element ->
val url = element.attr("href")
MangaPage(
id = generateUid(url),
url = url,
preview = null,
source = source
)
}
}
}

Loading…
Cancel
Save