Convert SY specific usages of Gson to Kotlin Serialization
Cleanup saved searches a bit Cleanup json parsing
This commit is contained in:
@@ -1,24 +1,27 @@
|
||||
package exh.md.handlers
|
||||
|
||||
import com.github.salomonbrys.kotson.string
|
||||
import com.google.gson.JsonParser
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.jsonArray
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import okhttp3.Response
|
||||
import java.util.Date
|
||||
|
||||
class ApiChapterParser {
|
||||
fun pageListParse(response: Response): List<Page> {
|
||||
val jsonData = response.body!!.string()
|
||||
val json = JsonParser.parseString(jsonData).asJsonObject
|
||||
val json = Json.decodeFromString<JsonObject>(jsonData)
|
||||
|
||||
val pages = mutableListOf<Page>()
|
||||
|
||||
val hash = json.get("hash").string
|
||||
val pageArray = json.getAsJsonArray("page_array")
|
||||
val server = json.get("server").string
|
||||
val hash = json["hash"]!!.jsonPrimitive.content
|
||||
val pageArray = json["page_array"]!!.jsonArray
|
||||
val server = json["server"]!!.jsonPrimitive.content
|
||||
|
||||
pageArray.forEach {
|
||||
val url = "$hash/${it.asString}"
|
||||
val url = "$hash/${it.jsonPrimitive.content}"
|
||||
pages.add(Page(pages.size, "$server,${response.request.url},${Date().time}", url))
|
||||
}
|
||||
|
||||
@@ -27,8 +30,8 @@ class ApiChapterParser {
|
||||
|
||||
fun externalParse(response: Response): String {
|
||||
val jsonData = response.body!!.string()
|
||||
val json = JsonParser.parseString(jsonData).asJsonObject
|
||||
val external = json.get("external").string
|
||||
val json = Json.decodeFromString<JsonObject>(jsonData)
|
||||
val external = json["external"]!!.jsonPrimitive.content
|
||||
return external.substringAfterLast("/")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package exh.md.handlers
|
||||
|
||||
import com.elvishew.xlog.XLog
|
||||
import com.github.salomonbrys.kotson.nullInt
|
||||
import com.github.salomonbrys.kotson.obj
|
||||
import com.google.gson.JsonParser
|
||||
import eu.kanade.tachiyomi.data.database.DatabaseHelper
|
||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
@@ -18,6 +15,11 @@ import exh.metadata.metadata.base.RaisedTag
|
||||
import exh.metadata.metadata.base.getFlatMetadataForManga
|
||||
import exh.metadata.metadata.base.insertFlatMetadata
|
||||
import exh.util.floor
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.json.JsonObject
|
||||
import kotlinx.serialization.json.intOrNull
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
import okhttp3.Response
|
||||
import rx.Completable
|
||||
import rx.Single
|
||||
@@ -232,8 +234,8 @@ class ApiMangaParser(private val langs: List<String>) {
|
||||
throw Exception("Null Response")
|
||||
}
|
||||
|
||||
val jsonObject = JsonParser.parseString(body).obj
|
||||
return jsonObject["manga_id"]?.nullInt ?: throw Exception("No manga associated with chapter")
|
||||
val jsonObject = Json.decodeFromString<JsonObject>(body)
|
||||
return jsonObject["manga_id"]?.jsonPrimitive?.intOrNull ?: throw Exception("No manga associated with chapter")
|
||||
} catch (e: Exception) {
|
||||
XLog.e(e)
|
||||
throw e
|
||||
|
||||
Reference in New Issue
Block a user