Dmzj update (#1473)

Dmzj update
This commit is contained in:
Mike 2019-09-06 21:46:37 -04:00 committed by Eugene
parent 3df4976fed
commit dd9b8bc6a8
2 changed files with 23 additions and 30 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Dmzj' appName = 'Tachiyomi: Dmzj'
pkgNameSuffix = 'zh.dmzj' pkgNameSuffix = 'zh.dmzj'
extClass = '.Dmzj' extClass = '.Dmzj'
extVersionCode = 5 extVersionCode = 6
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -7,20 +7,18 @@ import eu.kanade.tachiyomi.source.online.HttpSource
import okhttp3.Request import okhttp3.Request
import okhttp3.Response import okhttp3.Response
import java.util.* import java.util.*
import kotlin.text.Regex import org.json.JSONArray
import org.json.JSONObject
import org.json.JSONArray;
import org.json.JSONObject;
/** /**
* Dmzj source * Dmzj source
*/ */
class Dmzj : HttpSource() { class Dmzj : HttpSource() {
override val lang = "zh" override val lang = "zh"
private val TAG: String = "Dmzj"
override val supportsLatest = true override val supportsLatest = true
override val name = "动漫之家" override val name = "动漫之家"
override val baseUrl = "http://v2.api.dmzj.com" override val baseUrl = "http://v3api.dmzj.com"
private fun cleanUrl(url: String) = if (url.startsWith("//")) private fun cleanUrl(url: String) = if (url.startsWith("//"))
"http:$url" "http:$url"
@ -36,34 +34,30 @@ class Dmzj : HttpSource() {
"Tachiyomi/1.0") "Tachiyomi/1.0")
.build()!! .build()!!
private fun mangaFromJSON1(json: String): MangasPage { // for simple searches (query only, no filters)
private fun simpleSearchJsonParse(json: String): MangasPage {
val arr = JSONArray(json) val arr = JSONArray(json)
val ret = ArrayList<SManga>(arr.length()) val ret = ArrayList<SManga>(arr.length())
for (i in 0 until arr.length()) { for (i in 0 until arr.length()) {
var obj = arr.getJSONObject(i) val obj = arr.getJSONObject(i)
var cid = obj.getString("id") val cid = obj.getString("id")
ret.add(SManga.create().apply { ret.add(SManga.create().apply {
title = obj.getString("name") title = obj.getString("comic_name")
thumbnail_url = cleanUrl(obj.getString("cover")) thumbnail_url = cleanUrl(obj.getString("comic_cover"))
author = obj.optString("authors") author = obj.optString("comic_author")
status = when(obj.getString("status_tag_id")) { url = "/comic/comic_$cid.json"
"2310" -> SManga.COMPLETED
"2309" -> SManga.ONGOING
else -> SManga.UNKNOWN
}
description = obj.getString("description")
url = "/comic/$cid.json"
}) })
} }
return MangasPage(ret, false) return MangasPage(ret, false)
} }
private fun mangaFromJSON2(json: String): MangasPage { // for popular, latest, and filtered search
private fun mangaFromJSON(json: String): MangasPage {
val arr = JSONArray(json) val arr = JSONArray(json)
val ret = ArrayList<SManga>(arr.length()) val ret = ArrayList<SManga>(arr.length())
for (i in 0 until arr.length()) { for (i in 0 until arr.length()) {
var obj = arr.getJSONObject(i) val obj = arr.getJSONObject(i)
var cid = obj.getString("id") val cid = obj.getString("id")
ret.add(SManga.create().apply { ret.add(SManga.create().apply {
title = obj.getString("title") title = obj.getString("title")
thumbnail_url = obj.getString("cover") thumbnail_url = obj.getString("cover")
@ -73,7 +67,7 @@ class Dmzj : HttpSource() {
"连载中" -> SManga.ONGOING "连载中" -> SManga.ONGOING
else -> SManga.UNKNOWN else -> SManga.UNKNOWN
} }
url = "/comic/$cid.json" url = "/comic/comic_$cid.json"
}) })
} }
return MangasPage(ret, arr.length() != 0) return MangasPage(ret, arr.length() != 0)
@ -109,13 +103,12 @@ class Dmzj : HttpSource() {
} }
override fun searchMangaParse(response: Response): MangasPage { override fun searchMangaParse(response: Response): MangasPage {
val res = response.body()!!.string() val body = response.body()!!.string()
val r = Regex("g_search_data = (.*)")
val m = r.find(res) return if (body.contains("g_search_data")) {
if (m != null) { simpleSearchJsonParse(body.substringAfter("=").trim().removeSuffix(";"))
return mangaFromJSON1(m.groupValues.get(1))
} else { } else {
return mangaFromJSON2(res) mangaFromJSON(body)
} }
} }
@ -126,7 +119,7 @@ class Dmzj : HttpSource() {
thumbnail_url = obj.getString("cover") thumbnail_url = obj.getString("cover")
var arr = obj.getJSONArray("authors") var arr = obj.getJSONArray("authors")
var tmparr = ArrayList<String>(arr.length()) val tmparr = ArrayList<String>(arr.length())
for (i in 0 until arr.length()) { for (i in 0 until arr.length()) {
tmparr.add(arr.getJSONObject(i).getString("tag_name")) tmparr.add(arr.getJSONObject(i).getString("tag_name"))
} }