parent
3df4976fed
commit
dd9b8bc6a8
|
@ -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'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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"))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue