From cbded92086329d0868da4aa4b3537736349a7dd5 Mon Sep 17 00:00:00 2001 From: "(e)x(otic) Ne(e)t" <16914200+DOTzX@users.noreply.github.com> Date: Sat, 11 Jun 2022 22:37:40 +0700 Subject: [PATCH] Komik Cast - Fix no page found (#12154) * Komik Cast - Fix no page found * Komik Cast - Fix no page found --- .../wpmangastream/komikcast/src/KomikCast.kt | 19 ++++++++++++++++++- .../wpmangastream/WPMangaStreamGenerator.kt | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/multisrc/overrides/wpmangastream/komikcast/src/KomikCast.kt b/multisrc/overrides/wpmangastream/komikcast/src/KomikCast.kt index 500d5c15e..d24ad2174 100644 --- a/multisrc/overrides/wpmangastream/komikcast/src/KomikCast.kt +++ b/multisrc/overrides/wpmangastream/komikcast/src/KomikCast.kt @@ -8,12 +8,18 @@ import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.jsonArray +import kotlinx.serialization.json.jsonObject import okhttp3.Headers import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.OkHttpClient import okhttp3.Request +import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import uy.kohesive.injekt.injectLazy import java.util.concurrent.TimeUnit class KomikCast : WPMangaStream("Komik Cast", "https://komikcast.me", "id") { @@ -151,7 +157,16 @@ class KomikCast : WPMangaStream("Komik Cast", "https://komikcast.me", "id") { } override fun pageListParse(document: Document): List { - return document.select("div#chapter_body .main-reading-area img.size-full") + val imageListRegex = Regex("chapterImages = (.*) \\|\\|") + val imageListJson = imageListRegex.find(document.toString())!!.destructured.toList()[0] + val imageList = json.parseToJsonElement(imageListJson).jsonObject + + var imageServer = "cdn" + if (!imageList.containsKey(imageServer)) imageServer = imageList.keys.first() + val imageElement = imageList[imageServer]!!.jsonArray.joinToString("") + val doc = Jsoup.parse(json.decodeFromString(imageElement)) + + return doc.select("img.size-full") .mapIndexed { i, img -> Page(i, "", img.attr("abs:Src")) } } @@ -167,4 +182,6 @@ class KomikCast : WPMangaStream("Komik Cast", "https://komikcast.me", "id") { Filter.Header("$name Project List page"), ProjectFilter() ) + + private val json: Json by injectLazy() } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt index cf98dd934..6205ebc11 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt @@ -22,7 +22,7 @@ class WPMangaStreamGenerator : ThemeSourceGenerator { SingleLang("Kanzenin", "https://kanzenin.xyz", "id", isNsfw = true), SingleLang("KlanKomik", "https://klankomik.com", "id", overrideVersionCode = 1), SingleLang("Komik AV", "https://komikav.com", "id", overrideVersionCode = 1), - SingleLang("Komik Cast", "https://komikcast.me", "id", overrideVersionCode = 10), + SingleLang("Komik Cast", "https://komikcast.me", "id", overrideVersionCode = 11), SingleLang("Komik Station", "https://komikstation.co", "id", overrideVersionCode = 3), SingleLang("KomikIndo.co", "https://komikindo.co", "id", className = "KomikindoCo", overrideVersionCode = 3), SingleLang("Kuma Scans (Kuma Translation)", "https://kumascans.com", "en", className = "KumaScans", overrideVersionCode = 1),