|
|
|
@ -164,7 +164,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
|
protected virtual IEnumerable<IMetadataProvider> GetProviders(IHasMetadata item, bool hasRefreshedMetadata, MetadataRefreshOptions options)
|
|
|
|
|
{
|
|
|
|
|
// Get providers to refresh
|
|
|
|
|
var providers = ((ProviderManager) ProviderManager).GetMetadataProviders<TItemType>(item).ToList();
|
|
|
|
|
var providers = ((ProviderManager)ProviderManager).GetMetadataProviders<TItemType>(item).ToList();
|
|
|
|
|
|
|
|
|
|
// Run all if either of these flags are true
|
|
|
|
|
var runAllProviders = options.ReplaceAllMetadata || options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || !hasRefreshedMetadata;
|
|
|
|
@ -258,7 +258,7 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
|
|
|
|
|
|
if (localItem.HasMetadata)
|
|
|
|
|
{
|
|
|
|
|
MergeData(localItem.Item, temp, new List<MetadataFields>(), false, true);
|
|
|
|
|
MergeData(localItem.Item, temp, new List<MetadataFields>(), !options.ReplaceAllMetadata, true);
|
|
|
|
|
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport;
|
|
|
|
|
|
|
|
|
|
// Only one local provider allowed per item
|
|
|
|
@ -287,7 +287,10 @@ namespace MediaBrowser.Providers.Manager
|
|
|
|
|
await ExecuteRemoteProviders(item, temp, providers.OfType<IRemoteMetadataProvider<TItemType>>(), refreshResult, cancellationToken).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MergeData(temp, item, item.LockedFields, true, true);
|
|
|
|
|
if (refreshResult.UpdateType > ItemUpdateType.Unspecified)
|
|
|
|
|
{
|
|
|
|
|
MergeData(temp, item, item.LockedFields, true, true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return refreshResult;
|
|
|
|
|
}
|
|
|
|
|