From b69d1586d7d0f9ceedde61f524abc521c4895556 Mon Sep 17 00:00:00 2001 From: jmir1 Date: Sat, 18 Dec 2021 16:57:04 +0100 Subject: [PATCH] mycima: replace gson with serialization --- .../tachiyomi/animeextension/ar/mycima/MyCima.kt | 15 +++++++++++---- .../animeextension/ar/mycimamovies/MyCimaMovie.kt | 15 +++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt b/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt index 97e0e6367..545c8e424 100644 --- a/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt +++ b/src/ar/mycima/src/eu/kanade/tachiyomi/animeextension/ar/mycima/MyCima.kt @@ -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().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("[$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)) } diff --git a/src/ar/mycimamovies/src/eu/kanade/tachiyomi/animeextension/ar/mycimamovies/MyCimaMovie.kt b/src/ar/mycimamovies/src/eu/kanade/tachiyomi/animeextension/ar/mycimamovies/MyCimaMovie.kt index 54f9c0e93..ce2b9b2b8 100644 --- a/src/ar/mycimamovies/src/eu/kanade/tachiyomi/animeextension/ar/mycimamovies/MyCimaMovie.kt +++ b/src/ar/mycimamovies/src/eu/kanade/tachiyomi/animeextension/ar/mycimamovies/MyCimaMovie.kt @@ -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().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("[$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)) }