Browse Source

Fix Tmdb external URL generation (#13817)

* Fix Tmdb external URL generation

* Update MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs
Tim Eisele 2 months ago
parent
commit
5769c398c6
1 changed files with 11 additions and 8 deletions
  1. 11 8
      MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs

+ 11 - 8
MediaBrowser.Providers/Plugins/Tmdb/TmdbExternalUrlProvider.cs

@@ -33,17 +33,18 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
                 if (season.Series.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId))
                 {
                     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}";
                         }
                     }
                 }
@@ -53,17 +54,19 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
                 if (episode.Series.TryGetProviderId(MetadataProvider.Imdb, out seriesExternalId))
                 {
                     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}";
                         }
                     }
                 }