MoviebaseApp / tmdb-kotlin

🎬 Modern powerful TMDB API to fetch movies and TV shows for Kotlin Multiplatform.
https://www.moviebase.app
Apache License 2.0
205 stars 20 forks source link

TmdbVideoType does not contain element with name 'Bloopers' #11

Closed ghost closed 2 years ago

ghost commented 2 years ago

Hi, I need some advice I don't know if I'm making a mistake somewhere but, whenever I try to get information about a movie, it throws me a mistake

Try for example Avengers: Endgame TMDb ID = 299534

It throws an error: app.moviebase.tmdb.model.TmdbVideoType does not contain element with name 'Bloopers'

my method is

`   private suspend fun fetchMovie(movieId: Int): TmdbMovieDetail? {

    return try {
        tmdbApi.movies.getDetails(
            movieId,
            "en-US",
            listOf(
                AppendResponse.EXTERNAL_IDS,
                AppendResponse.CREDITS,
                AppendResponse.RELEASES_DATES,
                AppendResponse.IMAGES,
                AppendResponse.MOVIE_CREDITS,
                AppendResponse.VIDEOS,
                AppendResponse.CONTENT_RATING,
                AppendResponse.WATCH_PROVIDERS
            )
        )
    } catch (e: ResponseException) {
        if (e.response.status == HttpStatusCode.NotFound) null else throw e
    }
}

`

Process: com.octopus.mplay, PID: 25580 kotlinx.serialization.SerializationException: app.moviebase.tmdb.model.TmdbVideoType does not contain element with name 'Bloopers' at kotlinx.serialization.json.internal.JsonNamesMapKt.getJsonNameIndexOrThrow(JsonNamesMap.kt:63) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeEnum(StreamingJsonDecoder.kt:265) at app.moviebase.tmdb.model.TmdbVideoType$$serializer.deserialize(TmdbModel.kt:108) at app.moviebase.tmdb.model.TmdbVideoType$$serializer.deserialize(TmdbModel.kt:108) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79) at app.moviebase.tmdb.model.TmdbVideo$$serializer.deserialize(TmdbModel.kt:141) at app.moviebase.tmdb.model.TmdbVideo$$serializer.deserialize(TmdbModel.kt:141) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) at kotlinx.serialization.encoding.CompositeDecoder$DefaultImpls.decodeSerializableElement$default(Decoding.kt:535) at kotlinx.serialization.internal.ListLikeSerializer.readElement(CollectionSerializers.kt:80) at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51) at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36) at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableElement(AbstractDecoder.kt:70) at app.moviebase.tmdb.model.TmdbResult$$serializer.deserialize(TmdbModel.kt:49) at app.moviebase.tmdb.model.TmdbResult$$serializer.deserialize(TmdbModel.kt:49) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36) at kotlinx.serialization.encoding.AbstractDecoder.decodeSerializableValue(AbstractDecoder.kt:43) at kotlinx.serialization.encoding.AbstractDecoder.decodeNullableSerializableElement(AbstractDecoder.kt:79) at app.moviebase.tmdb.model.TmdbMovieDetail$$serializer.deserialize(TmdbMovieModel.kt:61) at app.moviebase.tmdb.model.TmdbMovieDetail$$serializer.deserialize(TmdbMovieModel.kt:61) at kotlinx.serialization.json.internal.PolymorphicKt.decodeSerializableValuePolymorphic(Polymorphic.kt:59) at kotlinx.serialization.json.internal.StreamingJsonDecoder.decodeSerializableValue(StreamingJsonDecoder.kt:36) at kotlinx.serialization.json.Json.decodeFromString(Json.kt:100) at io.ktor.serialization.kotlinx.KotlinxSerializationConverter.deserialize(KotlinxSerializationConverter.kt:55) at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invokeSuspend(ContentNegotiation.kt:135) at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:13) 2022-06-11 22:53:24.305 25580-25616/com.octopus.mplay E/AndroidRuntime: at io.ktor.client.plugins.contentnegotiation.ContentNegotiation$Plugin$install$2.invoke(Unknown Source:6) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at io.ktor.client.HttpClient$4.invokeSuspend(HttpClient.kt:170) at io.ktor.client.HttpClient$4.invoke(Unknown Source:11) at io.ktor.client.HttpClient$4.invoke(Unknown Source:6) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at io.ktor.util.pipeline.SuspendFunctionGun.proceedWith(SuspendFunctionGun.kt:91) at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invokeSuspend(HttpCallValidator.kt:140) at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:13) at io.ktor.client.plugins.HttpCallValidator$Companion$install$2.invoke(Unknown Source:6) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:123) at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:81) at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:101) at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77) at io.ktor.client.call.HttpClientCall.body(HttpClientCall.kt:87) at app.moviebase.tmdb.api.TmdbMoviesApi.getDetails(TmdbMoviesApi.kt:61) at app.moviebase.tmdb.api.TmdbMoviesApi$getDetails$1.invokeSuspend(Unknown Source:16) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)

ChrisKruegerDev commented 2 years ago

This should be fixed in version 0.6.7.

ghost commented 2 years ago

Thanks a lot. It works