diff options
Diffstat (limited to 'MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs b/MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs index bec800c03..8d9ec10c1 100644 --- a/MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs +++ b/MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs @@ -30,40 +30,43 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider break; case Season season: - if (season.Series.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId)) + if (season.Series?.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId) == true) { 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 - 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 (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}"; } } } break; case Episode episode: - if (episode.Series.TryGetProviderId(MetadataProvider.Imdb, out seriesExternalId)) + if (episode.Series?.TryGetProviderId(MetadataProvider.Tmdb, out seriesExternalId) == true) { 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 - 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 (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}"; } } } |
