| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- using System;
 
- using System.Collections.Generic;
 
- using MediaBrowser.Controller.Entities;
 
- using MediaBrowser.Controller.Entities.Movies;
 
- using MediaBrowser.Controller.Entities.TV;
 
- using MediaBrowser.Controller.Providers;
 
- using MediaBrowser.Model.Entities;
 
- using TMDbLib.Objects.TvShows;
 
- namespace MediaBrowser.Providers.Plugins.Tmdb;
 
- /// <summary>
 
- /// External URLs for TMDb.
 
- /// </summary>
 
- public class TmdbExternalUrlProvider : IExternalUrlProvider
 
- {
 
-     /// <inheritdoc/>
 
-     public string Name => "TMDB";
 
-     /// <inheritdoc/>
 
-     public IEnumerable<string> GetExternalUrls(BaseItem item)
 
-     {
 
-         switch (item)
 
-         {
 
-             case Series:
 
-                 if (item.TryGetProviderId(MetadataProvider.Tmdb, out var externalId))
 
-                 {
 
-                     yield return TmdbUtils.BaseTmdbUrl + $"tv/{externalId}";
 
-                 }
 
-                 break;
 
-             case Season season:
 
-                 if (season.Series?.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId) == true)
 
-                 {
 
-                     var orderString = season.Series.DisplayOrder;
 
-                     var seasonNumber = season.IndexNumber;
 
-                     if (string.IsNullOrEmpty(orderString) && seasonNumber is not null)
 
-                     {
 
-                         // Default order is airdate
 
-                         yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}";
 
-                     }
 
-                     if (Enum.TryParse<TvGroupType>(season.Series.DisplayOrder, out var order))
 
-                     {
 
-                         if (order.Equals(TvGroupType.OriginalAirDate) && seasonNumber is not null)
 
-                         {
 
-                             yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}";
 
-                         }
 
-                     }
 
-                 }
 
-                 break;
 
-             case Episode episode:
 
-                 if (episode.Series?.TryGetProviderId(MetadataProvider.Tmdb, out seriesExternalId) == true)
 
-                 {
 
-                     var orderString = episode.Series.DisplayOrder;
 
-                     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/{seasonNumber}/episode/{episodeNumber}";
 
-                     }
 
-                     if (Enum.TryParse<TvGroupType>(orderString, out var order))
 
-                     {
 
-                         if (order.Equals(TvGroupType.OriginalAirDate) && seasonNumber is not null && episodeNumber is not null)
 
-                         {
 
-                             yield return TmdbUtils.BaseTmdbUrl + $"tv/{seriesExternalId}/season/{seasonNumber}/episode/{episodeNumber}";
 
-                         }
 
-                     }
 
-                 }
 
-                 break;
 
-             case Movie:
 
-                 if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
 
-                 {
 
-                     yield return TmdbUtils.BaseTmdbUrl + $"movie/{externalId}";
 
-                 }
 
-                 break;
 
-             case Person:
 
-                 if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
 
-                 {
 
-                     yield return TmdbUtils.BaseTmdbUrl + $"person/{externalId}";
 
-                 }
 
-                 break;
 
-             case BoxSet:
 
-                 if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
 
-                 {
 
-                     yield return TmdbUtils.BaseTmdbUrl + $"collection/{externalId}";
 
-                 }
 
-                 break;
 
-         }
 
-     }
 
- }
 
 
  |