From 33213497618331a77b1abb709fd06b0cb3cfcf65 Mon Sep 17 00:00:00 2001 From: mobby45 <68152858+mobby45@users.noreply.github.com> Date: Fri, 9 Aug 2024 15:02:08 +0200 Subject: [PATCH] Update FrAnimeDto.kt --- .../animeextension/fr/franime/dto/FrAnimeDto.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/fr/franime/src/eu/kanade/tachiyomi/animeextension/fr/franime/dto/FrAnimeDto.kt b/src/fr/franime/src/eu/kanade/tachiyomi/animeextension/fr/franime/dto/FrAnimeDto.kt index 4356e2a7..0d4ac6ad 100644 --- a/src/fr/franime/src/eu/kanade/tachiyomi/animeextension/fr/franime/dto/FrAnimeDto.kt +++ b/src/fr/franime/src/eu/kanade/tachiyomi/animeextension/fr/franime/dto/FrAnimeDto.kt @@ -1,4 +1,5 @@ package eu.kanade.tachiyomi.animeextension.fr.franime.dto + import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName @@ -12,23 +13,28 @@ import kotlinx.serialization.json.JsonEncoder import kotlinx.serialization.json.JsonUnquotedLiteral import kotlinx.serialization.json.jsonPrimitive import java.math.BigInteger + typealias BigIntegerJson = @Serializable(with = BigIntegerSerializer::class) BigInteger + @OptIn(ExperimentalSerializationApi::class) private object BigIntegerSerializer : KSerializer { override val descriptor = PrimitiveSerialDescriptor("java.math.BigInteger", PrimitiveKind.LONG) + override fun deserialize(decoder: Decoder): BigInteger = when (decoder) { is JsonDecoder -> decoder.decodeJsonElement().jsonPrimitive.content.toBigInteger() else -> decoder.decodeString().toBigInteger() } + override fun serialize(encoder: Encoder, value: BigInteger) = when (encoder) { is JsonEncoder -> encoder.encodeJsonElement(JsonUnquotedLiteral(value.toString())) else -> encoder.encodeString(value.toString()) } } + @Serializable data class Anime( @SerialName("themes") val genres: List, @@ -52,25 +58,30 @@ data class Anime( @SerialName("affiche_small") val posterSmall: String?, @SerialName("updatedDate") val updateTime: Long?, // deserialize as timestamp ) + @Serializable data class Season( @SerialName("title") val title: String, @SerialName("episodes") val episodes: List, ) + @Serializable data class Episode( @SerialName("title") val title: String?, @SerialName("lang") val languages: EpisodeLanguages, ) + @Serializable data class EpisodeLanguages( @SerialName("vf") val vf: EpisodeLanguage, @SerialName("vo") val vo: EpisodeLanguage, ) + @Serializable data class EpisodeLanguage( @SerialName("lecteurs") val players: List, ) + @Serializable data class TitlesAlt( @SerialName("en") val en: String?,