Move external url listing to provider for plugin use (#12279)

This commit is contained in:
Cody Robibero
2024-07-17 09:48:31 -04:00
committed by GitHub
parent 78ed8f660c
commit b026772764
13 changed files with 73 additions and 124 deletions

View File

@@ -2497,11 +2497,6 @@ namespace MediaBrowser.Controller.Entities
return new[] { Id };
}
public virtual List<ExternalUrl> GetRelatedUrls()
{
return new List<ExternalUrl>();
}
public virtual double? GetRefreshProgress()
{
return null;

View File

@@ -121,23 +121,5 @@ namespace MediaBrowser.Controller.Entities.Movies
return hasChanges;
}
/// <inheritdoc />
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
var imdbId = this.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/movies/{0}", imdbId)
});
}
return list;
}
}
}

View File

@@ -344,22 +344,5 @@ namespace MediaBrowser.Controller.Entities.TV
return hasChanges;
}
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
var imdbId = this.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/episodes/{0}", imdbId)
});
}
return list;
}
}
}

View File

@@ -482,22 +482,5 @@ namespace MediaBrowser.Controller.Entities.TV
return hasChanges;
}
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
var imdbId = this.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/shows/{0}", imdbId)
});
}
return list;
}
}
}

View File

@@ -80,22 +80,5 @@ namespace MediaBrowser.Controller.Entities
return hasChanges;
}
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
var imdbId = this.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/movies/{0}", imdbId)
});
}
return list;
}
}
}

View File

@@ -254,25 +254,5 @@ namespace MediaBrowser.Controller.LiveTv
return name;
}
public override List<ExternalUrl> GetRelatedUrls()
{
var list = base.GetRelatedUrls();
var imdbId = this.GetProviderId(MetadataProvider.Imdb);
if (!string.IsNullOrEmpty(imdbId))
{
if (IsMovie)
{
list.Add(new ExternalUrl
{
Name = "Trakt",
Url = string.Format(CultureInfo.InvariantCulture, "https://trakt.tv/movies/{0}", imdbId)
});
}
}
return list;
}
}
}

View File

@@ -1,3 +1,4 @@
using System;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Providers;
@@ -33,6 +34,7 @@ namespace MediaBrowser.Controller.Providers
/// <summary>
/// Gets the URL format string for this id.
/// </summary>
[Obsolete("Obsolete in 10.10, to be removed in 10.11")]
string? UrlFormatString { get; }
/// <summary>

View File

@@ -0,0 +1,22 @@
using System.Collections.Generic;
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Providers;
/// <summary>
/// Interface to include related urls for an item.
/// </summary>
public interface IExternalUrlProvider
{
/// <summary>
/// Gets the external service name.
/// </summary>
string Name { get; }
/// <summary>
/// Get the list of external urls.
/// </summary>
/// <param name="item">The item to get external urls for.</param>
/// <returns>The list of external urls.</returns>
IEnumerable<string> GetExternalUrls(BaseItem item);
}

View File

@@ -99,12 +99,14 @@ namespace MediaBrowser.Controller.Providers
/// <param name="metadataProviders">Metadata providers to use.</param>
/// <param name="metadataSavers">Metadata savers to use.</param>
/// <param name="externalIds">External IDs to use.</param>
/// <param name="externalUrlProviders">The list of external url providers.</param>
void AddParts(
IEnumerable<IImageProvider> imageProviders,
IEnumerable<IMetadataService> metadataServices,
IEnumerable<IMetadataProvider> metadataProviders,
IEnumerable<IMetadataSaver> metadataSavers,
IEnumerable<IExternalId> externalIds);
IEnumerable<IExternalId> externalIds,
IEnumerable<IExternalUrlProvider> externalUrlProviders);
/// <summary>
/// Gets the available remote images.