From 6bdbf2c65e15418349f4d1da194919752a9eff65 Mon Sep 17 00:00:00 2001 From: Naga <94557604+NagaYZ@users.noreply.github.com> Date: Mon, 27 May 2024 10:26:53 +0200 Subject: [PATCH] closes #795 --- .../kotatsu/parsers/site/fmreader/ja/Klz9.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt index 4ab0ee63..131053f9 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/site/fmreader/ja/Klz9.kt @@ -1,5 +1,6 @@ package org.koitharu.kotatsu.parsers.site.fmreader.ja +import okhttp3.HttpUrl.Companion.toHttpUrl import org.jsoup.nodes.Document import org.koitharu.kotatsu.parsers.MangaLoaderContext import org.koitharu.kotatsu.parsers.MangaSourceParser @@ -42,12 +43,24 @@ internal class Klz9(context: MangaLoaderContext) : } } + private val chapterListSelector = "div#list-chapters p, table.table tr, .list-chapters > a" + + private fun generateRandomStr(length: Int): String { + return (1..length).map { toPathCharacters.random() }.joinToString("") + } + + private val toPathCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + override suspend fun getChapters(doc: Document): List { val slug = doc.selectFirstOrThrow("div.h0rating").attr("slug") + val xhrUrl = "https://$domain/${generateRandomStr(25)}.lstc".toHttpUrl().newBuilder() + .addQueryParameter("slug", slug) + .build() val docLoad = - webClient.httpGet("https://$domain/app/manga/controllers/cont.listChapter.php?slug=$slug").parseHtml() + webClient.httpGet(xhrUrl).parseHtml() + val dateFormat = SimpleDateFormat(datePattern, sourceLocale) - return docLoad.body().select(selectChapter).mapChapters(reversed = true) { i, a -> + return docLoad.body().select(chapterListSelector).mapChapters(reversed = true) { i, a -> val href = "/" + a.selectFirstOrThrow("a.chapter").attrAsRelativeUrl("href") val dateText = a.selectFirst(selectDate)?.text() MangaChapter(