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.cs18
1 files changed, 18 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index 73df6d03d2..fbd9e5435e 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -163,6 +163,8 @@ namespace MediaBrowser.Providers.Manager
_externalUrlProviders = externalUrlProviders.OrderBy(i => i.Name).ToArray();
_savers = metadataSavers.ToArray();
+
+ ClearMetadataProviderCache();
}
/// <inheritdoc/>
@@ -436,6 +438,14 @@ namespace MediaBrowser.Providers.Manager
return false;
}
+ // Extras have no identity of their own in an online database, so remote artwork for them
+ // is always some other item's. Local and dynamic providers still apply, so an extra can
+ // keep an embedded thumbnail or an extracted frame.
+ if (item.ExtraType.HasValue && provider is IRemoteImageProvider)
+ {
+ return false;
+ }
+
return _baseItemManager.IsImageFetcherEnabled(item, libraryTypeOptions, provider.Name);
}
@@ -584,6 +594,14 @@ namespace MediaBrowser.Providers.Manager
return true;
}
+ // An extra is a local file belonging to another item and has no identity of its own in an
+ // online database. Looking it up matches whatever the surrounding folder happens to be
+ // called and overwrites the extra's name with a different item's title.
+ if (item.ExtraType.HasValue)
+ {
+ return false;
+ }
+
// Artists without a folder structure that are derived from metadata have no real path in the library,
// so GetLibraryOptions returns null. Allow all providers through rather than blocking them.
if (item is MusicArtist && libraryTypeOptions is null)