aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/MetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/MetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs21
1 files changed, 15 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index b2e23682b..c0ef7e144 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -389,7 +389,7 @@ namespace MediaBrowser.Providers.Manager
private async Task ExecuteRemoteProviders(TItemType item, TItemType temp, IEnumerable<IRemoteMetadataProvider<TItemType, TIdType>> providers, RefreshResult refreshResult, CancellationToken cancellationToken)
{
- TIdType id = null;
+ TIdType id = await CreateInitialLookupInfo(item, cancellationToken).ConfigureAwait(false);
var unidentifiedCount = 0;
var identifiedCount = 0;
@@ -399,11 +399,7 @@ namespace MediaBrowser.Providers.Manager
var providerName = provider.GetType().Name;
Logger.Debug("Running {0} for {1}", providerName, item.Path ?? item.Name);
- if (id == null)
- {
- id = item.GetLookupInfo();
- }
- else
+ if (id != null)
{
MergeNewData(temp, id);
}
@@ -448,6 +444,19 @@ namespace MediaBrowser.Providers.Manager
}
}
+ private async Task<TIdType> CreateInitialLookupInfo(TItemType item, CancellationToken cancellationToken)
+ {
+ var info = item.GetLookupInfo();
+
+ var hasIdentity = info as IHasIdentities<IItemIdentity>;
+ if (hasIdentity != null)
+ {
+ await hasIdentity.FindIdentities(ProviderManager, cancellationToken).ConfigureAwait(false);
+ }
+
+ return info;
+ }
+
private void MergeNewData(TItemType source, TIdType lookupInfo)
{
// Copy new provider id's that may have been obtained