From d239be6c9afac71874d482c2c6188cb37e2a902c Mon Sep 17 00:00:00 2001 From: Mike <51273546+SnakeDoc83@users.noreply.github.com> Date: Sun, 16 Aug 2020 18:48:12 -0400 Subject: [PATCH] Dmzj - fallback to v3api for hidden chapters (#4145) --- src/zh/dmzj/build.gradle | 2 +- .../eu/kanade/tachiyomi/extension/zh/dmzj/Dmzj.kt | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/zh/dmzj/build.gradle b/src/zh/dmzj/build.gradle index 365c93a26..57f658e8a 100644 --- a/src/zh/dmzj/build.gradle +++ b/src/zh/dmzj/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Dmzj' pkgNameSuffix = 'zh.dmzj' extClass = '.Dmzj' - extVersionCode = 11 + extVersionCode = 12 libVersion = '1.2' } diff --git a/src/zh/dmzj/src/eu/kanade/tachiyomi/extension/zh/dmzj/Dmzj.kt b/src/zh/dmzj/src/eu/kanade/tachiyomi/extension/zh/dmzj/Dmzj.kt index a21f825f1..90ca7668b 100644 --- a/src/zh/dmzj/src/eu/kanade/tachiyomi/extension/zh/dmzj/Dmzj.kt +++ b/src/zh/dmzj/src/eu/kanade/tachiyomi/extension/zh/dmzj/Dmzj.kt @@ -170,8 +170,19 @@ class Dmzj : HttpSource() { override fun pageListRequest(chapter: SChapter) = GET(chapter.url, headers) // Bypass base url override fun pageListParse(response: Response): List { - val obj = JSONObject(response.body()!!.string()) - val arr = obj.getJSONObject("chapter").getJSONArray("page_url") + // some chapters are hidden and won't return a JSONObject from api.m.dmzj, have to get them through v3api (but images won't be as HQ) + val arr = try { + val obj = JSONObject(response.body()!!.string()) + obj.getJSONObject("chapter").getJSONArray("page_url") + } catch (_: Exception) { + // example url: http://v3api.dmzj.com/chapter/44253/101852.json + val url = response.request().url().toString() + .replace("api.m", "v3api") + .replace("comic/", "") + .replace(".html", ".json") + val obj = client.newCall(GET(url, headers)).execute().let { JSONObject(it.body()!!.string()) } + obj.getJSONArray("page_url") + } val ret = ArrayList(arr.length()) for (i in 0 until arr.length()) { ret.add(Page(i, "", arr.getString(i)))