parent
							
								
									3df4976fed
								
							
						
					
					
						commit
						dd9b8bc6a8
					
				@ -5,7 +5,7 @@ ext {
 | 
			
		||||
    appName = 'Tachiyomi: Dmzj'
 | 
			
		||||
    pkgNameSuffix = 'zh.dmzj'
 | 
			
		||||
    extClass = '.Dmzj'
 | 
			
		||||
    extVersionCode = 5
 | 
			
		||||
    extVersionCode = 6
 | 
			
		||||
    libVersion = '1.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,20 +7,18 @@ import eu.kanade.tachiyomi.source.online.HttpSource
 | 
			
		||||
import okhttp3.Request
 | 
			
		||||
import okhttp3.Response
 | 
			
		||||
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
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Dmzj : HttpSource() {
 | 
			
		||||
    override val lang = "zh"
 | 
			
		||||
    private val TAG: String = "Dmzj"
 | 
			
		||||
    override val supportsLatest = true
 | 
			
		||||
    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("//"))
 | 
			
		||||
        "http:$url"
 | 
			
		||||
@ -36,34 +34,30 @@ class Dmzj : HttpSource() {
 | 
			
		||||
                            "Tachiyomi/1.0")
 | 
			
		||||
            .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 ret = ArrayList<SManga>(arr.length())
 | 
			
		||||
        for (i in 0 until arr.length()) {
 | 
			
		||||
            var obj = arr.getJSONObject(i)
 | 
			
		||||
            var cid = obj.getString("id")
 | 
			
		||||
            val obj = arr.getJSONObject(i)
 | 
			
		||||
            val cid = obj.getString("id")
 | 
			
		||||
            ret.add(SManga.create().apply {
 | 
			
		||||
                title = obj.getString("name")
 | 
			
		||||
                thumbnail_url = cleanUrl(obj.getString("cover"))
 | 
			
		||||
                author = obj.optString("authors")
 | 
			
		||||
                status = when(obj.getString("status_tag_id")) {
 | 
			
		||||
                    "2310" -> SManga.COMPLETED
 | 
			
		||||
                    "2309" -> SManga.ONGOING
 | 
			
		||||
                    else -> SManga.UNKNOWN
 | 
			
		||||
                }
 | 
			
		||||
                description = obj.getString("description")
 | 
			
		||||
                url = "/comic/$cid.json"
 | 
			
		||||
                title = obj.getString("comic_name")
 | 
			
		||||
                thumbnail_url = cleanUrl(obj.getString("comic_cover"))
 | 
			
		||||
                author = obj.optString("comic_author")
 | 
			
		||||
                url = "/comic/comic_$cid.json"
 | 
			
		||||
            })
 | 
			
		||||
        }
 | 
			
		||||
        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 ret = ArrayList<SManga>(arr.length())
 | 
			
		||||
        for (i in 0 until arr.length()) {
 | 
			
		||||
            var obj = arr.getJSONObject(i)
 | 
			
		||||
            var cid = obj.getString("id")
 | 
			
		||||
            val obj = arr.getJSONObject(i)
 | 
			
		||||
            val cid = obj.getString("id")
 | 
			
		||||
            ret.add(SManga.create().apply {
 | 
			
		||||
                title = obj.getString("title")
 | 
			
		||||
                thumbnail_url = obj.getString("cover")
 | 
			
		||||
@ -73,7 +67,7 @@ class Dmzj : HttpSource() {
 | 
			
		||||
                    "连载中" -> SManga.ONGOING
 | 
			
		||||
                    else -> SManga.UNKNOWN
 | 
			
		||||
                }
 | 
			
		||||
                url = "/comic/$cid.json"
 | 
			
		||||
                url = "/comic/comic_$cid.json"
 | 
			
		||||
            })
 | 
			
		||||
        }
 | 
			
		||||
        return MangasPage(ret, arr.length() != 0)
 | 
			
		||||
@ -109,13 +103,12 @@ class Dmzj : HttpSource() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override fun searchMangaParse(response: Response): MangasPage {
 | 
			
		||||
        val res = response.body()!!.string()
 | 
			
		||||
        val r = Regex("g_search_data = (.*)")
 | 
			
		||||
        val m = r.find(res)
 | 
			
		||||
        if (m != null) {
 | 
			
		||||
            return mangaFromJSON1(m.groupValues.get(1))
 | 
			
		||||
        val body = response.body()!!.string()
 | 
			
		||||
 | 
			
		||||
        return if (body.contains("g_search_data")) {
 | 
			
		||||
            simpleSearchJsonParse(body.substringAfter("=").trim().removeSuffix(";"))
 | 
			
		||||
        } else {
 | 
			
		||||
            return mangaFromJSON2(res)
 | 
			
		||||
            mangaFromJSON(body)
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -126,7 +119,7 @@ class Dmzj : HttpSource() {
 | 
			
		||||
        thumbnail_url = obj.getString("cover")
 | 
			
		||||
 | 
			
		||||
        var arr = obj.getJSONArray("authors")
 | 
			
		||||
        var tmparr = ArrayList<String>(arr.length())
 | 
			
		||||
        val tmparr = ArrayList<String>(arr.length())
 | 
			
		||||
        for (i in 0 until arr.length()) {
 | 
			
		||||
            tmparr.add(arr.getJSONObject(i).getString("tag_name"))
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user