diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 1a9bd618d7..2a00ce992e 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -26,6 +26,7 @@ using System.Threading.Tasks; using CommonIO; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.LiveTv; +using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.Entities { @@ -2212,5 +2213,10 @@ namespace MediaBrowser.Controller.Entities DeleteFileLocation = false }); } + + public virtual List GetRelatedUrls() + { + return new List(); + } } } \ No newline at end of file diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index 5882b5f4dd..605221dcde 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -8,6 +8,7 @@ using System.Runtime.Serialization; using System.Threading; using System.Threading.Tasks; using CommonIO; +using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.Entities.Movies { @@ -163,5 +164,22 @@ namespace MediaBrowser.Controller.Entities.Movies return hasChanges; } + + public override List GetRelatedUrls() + { + var list = base.GetRelatedUrls(); + + var imdbId = this.GetProviderId(MetadataProviders.Imdb); + if (!string.IsNullOrWhiteSpace(imdbId)) + { + list.Add(new ExternalUrl + { + Name = "Trakt", + Url = string.Format("https://trakt.tv/movies/{0}", imdbId) + }); + } + + return list; + } } } diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs index 3be2fc6243..74645bbe91 100644 --- a/MediaBrowser.Controller/Entities/Trailer.cs +++ b/MediaBrowser.Controller/Entities/Trailer.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Globalization; using System.Runtime.Serialization; using MediaBrowser.Controller.Entities.Movies; +using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.Entities { @@ -110,5 +111,22 @@ namespace MediaBrowser.Controller.Entities return hasChanges; } + + public override List GetRelatedUrls() + { + var list = base.GetRelatedUrls(); + + var imdbId = this.GetProviderId(MetadataProviders.Imdb); + if (!string.IsNullOrWhiteSpace(imdbId)) + { + list.Add(new ExternalUrl + { + Name = "Trakt", + Url = string.Format("https://trakt.tv/movies/{0}", imdbId) + }); + } + + return list; + } } } diff --git a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs index cc30709db2..74c9932480 100644 --- a/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs +++ b/MediaBrowser.Controller/LiveTv/LiveTvProgram.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Runtime.Serialization; using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Providers; namespace MediaBrowser.Controller.LiveTv { @@ -235,5 +236,25 @@ namespace MediaBrowser.Controller.LiveTv return false; } } + + public override List GetRelatedUrls() + { + var list = base.GetRelatedUrls(); + + var imdbId = this.GetProviderId(MetadataProviders.Imdb); + if (!string.IsNullOrWhiteSpace(imdbId)) + { + if (IsMovie) + { + list.Add(new ExternalUrl + { + Name = "Trakt", + Url = string.Format("https://trakt.tv/movies/{0}", imdbId) + }); + } + } + + return list; + } } } diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index a976a7f715..3eefa9647d 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -133,7 +133,7 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// IEnumerable{ExternalUrl}. - IEnumerable GetExternalUrls(IHasProviderIds item); + IEnumerable GetExternalUrls(BaseItem item); /// /// Gets the external identifier infos. diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index 29897e0736..0f0745d1bc 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -830,7 +830,7 @@ namespace MediaBrowser.Providers.Manager }); } - public IEnumerable GetExternalUrls(IHasProviderIds item) + public IEnumerable GetExternalUrls(BaseItem item) { return GetExternalIds(item) .Select(i => @@ -853,7 +853,7 @@ namespace MediaBrowser.Providers.Manager Url = string.Format(i.UrlFormatString, value) }; - }).Where(i => i != null); + }).Where(i => i != null).Concat(item.GetRelatedUrls()); } public IEnumerable GetExternalIdInfos(IHasProviderIds item)