Fix Tmdb external URL generation (#13817)

* Fix Tmdb external URL generation

* Update MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs
This commit is contained in:
Tim Eisele 2025-04-01 01:44:06 +02:00 committed by GitHub
parent 4a4fef830e
commit 5769c398c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -33,17 +33,18 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
if (season.Series.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId)) if (season.Series.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId))
{ {
var orderString = season.Series.DisplayOrder; var orderString = season.Series.DisplayOrder;
if (string.IsNullOrEmpty(orderString)) var seasonNumber = season.IndexNumber;
if (string.IsNullOrEmpty(orderString) && seasonNumber is not null)
{ {
// Default order is airdate // Default order is airdate
yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{season.IndexNumber}"; yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}";
} }
if (Enum.TryParse<TvGroupType>(season.Series.DisplayOrder, out var order)) if (Enum.TryParse<TvGroupType>(season.Series.DisplayOrder, out var order))
{ {
if (order.Equals(TvGroupType.OriginalAirDate)) if (order.Equals(TvGroupType.OriginalAirDate) && seasonNumber is not null)
{ {
yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{season.IndexNumber}"; yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}";
} }
} }
} }
@ -53,17 +54,19 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
if (episode.Series.TryGetProviderId(MetadataProvider.Imdb, out seriesExternalId)) if (episode.Series.TryGetProviderId(MetadataProvider.Imdb, out seriesExternalId))
{ {
var orderString = episode.Series.DisplayOrder; var orderString = episode.Series.DisplayOrder;
if (string.IsNullOrEmpty(orderString)) var seasonNumber = episode.Season?.IndexNumber;
var episodeNumber = episode.IndexNumber;
if (string.IsNullOrEmpty(orderString) && seasonNumber is not null && episodeNumber is not null)
{ {
// Default order is airdate // Default order is airdate
yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{episode.Season.IndexNumber}/episode/{episode.IndexNumber}"; yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}/episode/{episodeNumber}";
} }
if (Enum.TryParse<TvGroupType>(orderString, out var order)) if (Enum.TryParse<TvGroupType>(orderString, out var order))
{ {
if (order.Equals(TvGroupType.OriginalAirDate)) if (order.Equals(TvGroupType.OriginalAirDate) && seasonNumber is not null && episodeNumber is not null)
{ {
yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{episode.Season.IndexNumber}/episode/{episode.IndexNumber}"; yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}/episode/{episodeNumber}";
} }
} }
} }