aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/ProviderManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderManager.cs')
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs63
1 files changed, 12 insertions, 51 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index 1028da32b..5cb28402e 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -131,12 +131,12 @@ namespace MediaBrowser.Providers.Manager
{
var type = item.GetType();
- var service = _metadataServices.FirstOrDefault(current => current.CanRefreshPrimary(type));
- service ??= _metadataServices.FirstOrDefault(current => current.CanRefresh(item));
+ var service = _metadataServices.FirstOrDefault(current => current.CanRefreshPrimary(type))
+ ?? _metadataServices.FirstOrDefault(current => current.CanRefresh(item));
if (service is null)
{
- _logger.LogError("Unable to find a metadata service for item of type {TypeName}", item.GetType().Name);
+ _logger.LogError("Unable to find a metadata service for item of type {TypeName}", type.Name);
return Task.FromResult(ItemUpdateType.None);
}
@@ -160,7 +160,7 @@ namespace MediaBrowser.Providers.Manager
// TODO: Isolate this hack into the tvh plugin
if (string.IsNullOrEmpty(contentType))
{
- if (url.IndexOf("/imagecache/", StringComparison.OrdinalIgnoreCase) != -1)
+ if (url.Contains("/imagecache/", StringComparison.OrdinalIgnoreCase))
{
contentType = "image/png";
}
@@ -232,6 +232,11 @@ namespace MediaBrowser.Providers.Manager
providers = providers.Where(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase));
}
+ if (query.ImageType is not null)
+ {
+ providers = providers.Where(i => i.GetSupportedImages(item).Contains(query.ImageType.Value));
+ }
+
var preferredLanguage = item.GetPreferredMetadataLanguage();
var tasks = providers.Select(i => GetImages(item, i, preferredLanguage, query.IncludeAllLanguages, cancellationToken, query.ImageType));
@@ -568,13 +573,7 @@ namespace MediaBrowser.Providers.Manager
/// <inheritdoc/>
public MetadataOptions GetMetadataOptions(BaseItem item)
- {
- var type = item.GetType().Name;
-
- return _configurationManager.Configuration.MetadataOptions
- .FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ??
- new MetadataOptions();
- }
+ => _configurationManager.GetMetadataOptionsForType(item.GetType().Name) ?? new MetadataOptions();
/// <inheritdoc/>
public Task SaveMetadataAsync(BaseItem item, ItemUpdateType updateType)
@@ -809,27 +808,12 @@ namespace MediaBrowser.Providers.Manager
{
var results = await provider.GetSearchResults(searchInfo, cancellationToken).ConfigureAwait(false);
- var list = results.ToList();
-
- foreach (var item in list)
+ foreach (var item in results)
{
item.SearchProviderName = provider.Name;
}
- return list;
- }
-
- /// <inheritdoc/>
- public Task<HttpResponseMessage> GetSearchImage(string providerName, string url, CancellationToken cancellationToken)
- {
- var provider = _metadataProviders.OfType<IRemoteSearchProvider>().FirstOrDefault(i => string.Equals(i.Name, providerName, StringComparison.OrdinalIgnoreCase));
-
- if (provider is null)
- {
- throw new ArgumentException("Search provider not found.");
- }
-
- return provider.GetImageResponse(url, cancellationToken);
+ return results;
}
private IEnumerable<IExternalId> GetExternalIds(IHasProviderIds item)
@@ -1102,29 +1086,6 @@ namespace MediaBrowser.Providers.Manager
return RefreshItem(item, options, cancellationToken);
}
- /// <summary>
- /// Runs multiple metadata refreshes concurrently.
- /// </summary>
- /// <param name="action">The action to run.</param>
- /// <param name="cancellationToken">The cancellation token.</param>
- /// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns>
- public async Task RunMetadataRefresh(Func<Task> action, CancellationToken cancellationToken)
- {
- // create a variable for this since it is possible MetadataRefreshThrottler could change due to a config update during a scan
- var metadataRefreshThrottler = _baseItemManager.MetadataRefreshThrottler;
-
- await metadataRefreshThrottler.WaitAsync(cancellationToken).ConfigureAwait(false);
-
- try
- {
- await action().ConfigureAwait(false);
- }
- finally
- {
- metadataRefreshThrottler.Release();
- }
- }
-
/// <inheritdoc/>
public void Dispose()
{