mycima: replace gson with serialization

This commit is contained in:
jmir1
2021-12-18 16:57:04 +01:00
parent 464ea6928a
commit b69d1586d7
2 changed files with 22 additions and 8 deletions

View File

@ -4,7 +4,6 @@ import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import com.google.gson.JsonParser
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
@ -14,6 +13,11 @@ import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Headers.Companion.toHeaders
import okhttp3.OkHttpClient
import okhttp3.Request
@ -22,6 +26,7 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
import java.lang.Exception
class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
@ -40,6 +45,8 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val json: Json by injectLazy()
// Popular Anime
override fun popularAnimeSelector(): String = "div.Grid--MycimaPosts div.GridItem div.Thumb--GridItem"
@ -113,10 +120,10 @@ class MyCima : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
if (script != null) {
val videosString = script.data().substringAfter("sources: [")
.substringBefore("]").substringBeforeLast(",")
val videosArray = JsonParser.parseString("[$videosString]").asJsonArray
val videosArray = json.decodeFromString<JsonArray>("[$videosString]")
for (video in videosArray) {
val format = video.asJsonObject.get("format").asString
val url = video.asJsonObject.get("src").asString
val format = video.jsonObject["format"]!!.jsonPrimitive.content
val url = video.jsonObject["src"]!!.jsonPrimitive.content
if (format != "auto") {
videoList.add(Video(url, format, url, null))
}

View File

@ -4,7 +4,6 @@ import android.app.Application
import android.content.SharedPreferences
import androidx.preference.ListPreference
import androidx.preference.PreferenceScreen
import com.google.gson.JsonParser
import eu.kanade.tachiyomi.animesource.ConfigurableAnimeSource
import eu.kanade.tachiyomi.animesource.model.AnimeFilter
import eu.kanade.tachiyomi.animesource.model.AnimeFilterList
@ -14,6 +13,11 @@ import eu.kanade.tachiyomi.animesource.model.Video
import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.util.asJsoup
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import okhttp3.Headers.Companion.toHeaders
import okhttp3.OkHttpClient
import okhttp3.Request
@ -22,6 +26,7 @@ import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy
import java.lang.Exception
class MyCimaMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
@ -40,6 +45,8 @@ class MyCimaMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
}
private val json: Json by injectLazy()
// Popular Anime
override fun popularAnimeSelector(): String = "div.Grid--MycimaPosts div.GridItem div.Thumb--GridItem"
@ -93,10 +100,10 @@ class MyCimaMovie : ConfigurableAnimeSource, ParsedAnimeHttpSource() {
if (script != null) {
val videosString = script.data().substringAfter("sources: [")
.substringBefore("]").substringBeforeLast(",")
val videosArray = JsonParser.parseString("[$videosString]").asJsonArray
val videosArray = json.decodeFromString<JsonArray>("[$videosString]")
for (video in videosArray) {
val format = video.asJsonObject.get("format").asString
val url = video.asJsonObject.get("src").asString
val format = video.jsonObject["format"]!!.jsonPrimitive.content
val url = video.jsonObject["src"]!!.jsonPrimitive.content
if (format != "auto") {
videoList.add(Video(url, format, url, null))
}