diff --git a/src/Tmdb/Framework/Serializer/TmdbTvEpisodeResultDenormalizer.php b/src/Tmdb/Framework/Serializer/TmdbTvEpisodeResultDenormalizer.php index ce4bca4..b68ce8b 100644 --- a/src/Tmdb/Framework/Serializer/TmdbTvEpisodeResultDenormalizer.php +++ b/src/Tmdb/Framework/Serializer/TmdbTvEpisodeResultDenormalizer.php @@ -16,10 +16,10 @@ class TmdbTvEpisodeResultDenormalizer implements DenormalizerInterface private readonly NormalizerInterface $normalizer, ) {} - public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): TmdbResult|array|null + public function denormalize(mixed $data, string $type, ?string $format = null, array $context = []): TmdbResult|TmdbEpisodeDto|array|null { /** @var TmdbEpisodeDto $result */ - $result = $this->normalizer->denormalize($data, TmdbResult::class, $format, $context); + $result = $this->normalizer->denormalize($data, TmdbEpisodeDto::class, $format, $context); return $result; } diff --git a/src/Tmdb/Framework/Serializer/TmdbTvShowResultDenormalizer.php b/src/Tmdb/Framework/Serializer/TmdbTvShowResultDenormalizer.php index 1cb275b..0323dcc 100644 --- a/src/Tmdb/Framework/Serializer/TmdbTvShowResultDenormalizer.php +++ b/src/Tmdb/Framework/Serializer/TmdbTvShowResultDenormalizer.php @@ -48,7 +48,7 @@ class TmdbTvShowResultDenormalizer extends TmdbResultDenormalizer implements Den array $context = [] ): bool { return array_key_exists('media_type', $context) && - $context['media_type'] === "tvshows"; + $context['media_type'] === MediaType::TvShow->value; } public function getSupportedTypes(?string $format): array diff --git a/src/Tmdb/TmdbClient.php b/src/Tmdb/TmdbClient.php index 5ea71c3..2ac9215 100644 --- a/src/Tmdb/TmdbClient.php +++ b/src/Tmdb/TmdbClient.php @@ -143,13 +143,13 @@ class TmdbClient { $tmdbId = $this->findByImdbId($imdbId)['id']; $media = $this->tvRepository->getApi()->getTvShow($tmdbId, ['append_to_response' => 'external_ids,credits']); + $media['seasons'] = Map::from($media['seasons'])->filter(function ($data) { return $data['season_number'] !== 0 && - strtolower($data['name']) !== 'specials'; + strtolower($data['name']) !== 'specials' && + $data['episode_count'] > 0; })->map(function ($data) use ($media) { return $this->tvSeasonDetails($media['id'], $data['season_number'])['episodes']; - })->rekey(function ($data) { - return $data[1]['season_number']; })->toArray(); return $this->parseResult( diff --git a/templates/search/result.html.twig b/templates/search/result.html.twig index 5b5de6e..987334f 100644 --- a/templates/search/result.html.twig +++ b/templates/search/result.html.twig @@ -20,7 +20,7 @@

- {{ results.media.title }} ({{ results.media.episodeAirDate|date('Y') }}) + {{ results.media.title }} ({{ results.media.year }})

{% if results.media.mediaType == "tvshows" %} @@ -109,7 +109,7 @@ - {{ results.media.episodeAirDate|date('n/j/Y', 'UTC') }} + {{ results.media.premiereDate|date('n/j/Y', 'UTC') }}