Dmzj - fallback to v3api for hidden chapters (#4145)

This commit is contained in:
Mike 2020-08-16 18:48:12 -04:00 committed by GitHub
parent 0fbdfa6a14
commit d239be6c9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Dmzj' extName = 'Dmzj'
pkgNameSuffix = 'zh.dmzj' pkgNameSuffix = 'zh.dmzj'
extClass = '.Dmzj' extClass = '.Dmzj'
extVersionCode = 11 extVersionCode = 12
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -170,8 +170,19 @@ class Dmzj : HttpSource() {
override fun pageListRequest(chapter: SChapter) = GET(chapter.url, headers) // Bypass base url override fun pageListRequest(chapter: SChapter) = GET(chapter.url, headers) // Bypass base url
override fun pageListParse(response: Response): List<Page> { override fun pageListParse(response: Response): List<Page> {
// 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()) val obj = JSONObject(response.body()!!.string())
val arr = obj.getJSONObject("chapter").getJSONArray("page_url") 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<Page>(arr.length()) val ret = ArrayList<Page>(arr.length())
for (i in 0 until arr.length()) { for (i in 0 until arr.length()) {
ret.add(Page(i, "", arr.getString(i))) ret.add(Page(i, "", arr.getString(i)))