From 54ca7ab4a3c92896cfac9e633a19003af4f78e70 Mon Sep 17 00:00:00 2001 From: Creepler13 Date: Sat, 15 Feb 2025 03:20:02 +0100 Subject: [PATCH] HiveScans/Toons: Fix PageListParse (#7640) * Fix PageListParse * change to json --- src/en/infernalvoidscans/build.gradle | 2 +- .../en/infernalvoidscans/HiveScans.kt | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/en/infernalvoidscans/build.gradle b/src/en/infernalvoidscans/build.gradle index 4d19d4dce..9cb8980b1 100644 --- a/src/en/infernalvoidscans/build.gradle +++ b/src/en/infernalvoidscans/build.gradle @@ -3,7 +3,7 @@ ext { extClass = '.HiveScans' themePkg = 'iken' baseUrl = 'https://hivetoon.com' - overrideVersionCode = 36 + overrideVersionCode = 37 } apply from: "$rootDir/common.gradle" diff --git a/src/en/infernalvoidscans/src/eu/kanade/tachiyomi/extension/en/infernalvoidscans/HiveScans.kt b/src/en/infernalvoidscans/src/eu/kanade/tachiyomi/extension/en/infernalvoidscans/HiveScans.kt index 5f18e9c53..4c78ef23e 100644 --- a/src/en/infernalvoidscans/src/eu/kanade/tachiyomi/extension/en/infernalvoidscans/HiveScans.kt +++ b/src/en/infernalvoidscans/src/eu/kanade/tachiyomi/extension/en/infernalvoidscans/HiveScans.kt @@ -1,6 +1,12 @@ package eu.kanade.tachiyomi.extension.en.infernalvoidscans import eu.kanade.tachiyomi.multisrc.iken.Iken +import eu.kanade.tachiyomi.source.model.Page +import kotlinx.serialization.Serializable +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.Response +import uy.kohesive.injekt.injectLazy class HiveScans : Iken( "Hive Scans", @@ -8,6 +14,8 @@ class HiveScans : Iken( "https://hivetoon.com", ) { + private val json by injectLazy() + override val versionId = 2 override val client = super.client.newBuilder() @@ -20,6 +28,20 @@ class HiveScans : Iken( } .build() + private val pageRegex = Regex("""\\"images\\":(\[.*?]).*?nextChapter""") + + @Serializable + class PageDTO( + val url: String, + ) + + override fun pageListParse(response: Response): List { + val pageDataArray = pageRegex.find(response.body.string())?.destructured?.component1()?.replace("\\", "") ?: return listOf() + return json.decodeFromString>(pageDataArray).mapIndexed { idx, page -> + Page(idx, imageUrl = page.url) + } + } + override fun headersBuilder() = super.headersBuilder() .set("Cache-Control", "max-age=0") }