diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-09 18:08:01 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-02-09 18:08:01 -0500 |
| commit | 44bb192ce0e286ced703394f733ca033b489ebc5 (patch) | |
| tree | ec893218d10581513b4679d6b7da490c3c49ecf9 /MediaBrowser.Providers/Manager | |
| parent | 6ff59b7e590be140781292206a55822742f2c8fa (diff) | |
update wizard function of enable/disable local metadata saving
Diffstat (limited to 'MediaBrowser.Providers/Manager')
| -rw-r--r-- | MediaBrowser.Providers/Manager/MetadataService.cs | 11 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Manager/ProviderManager.cs | 21 |
2 files changed, 19 insertions, 13 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index f7c2cef94..93879d826 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -71,7 +71,7 @@ namespace MediaBrowser.Providers.Manager } var itemOfType = (TItemType)item; - var config = GetMetadataOptions(itemOfType); + var config = ProviderManager.GetMetadataOptions(item); var updateType = ItemUpdateType.Unspecified; var refreshResult = GetLastResult(item.Id); @@ -157,15 +157,6 @@ namespace MediaBrowser.Providers.Manager } } - private readonly MetadataOptions _defaultOptions = new MetadataOptions(); - protected MetadataOptions GetMetadataOptions(TItemType item) - { - var type = item.GetType().Name; - return ServerConfigurationManager.Configuration.MetadataOptions - .FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ?? - _defaultOptions; - } - /// <summary> /// Befores the metadata refresh. /// </summary> diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index fd19d572c..a6817cf32 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -470,7 +470,7 @@ namespace MediaBrowser.Providers.Manager })); // Savers - list.AddRange(_savers.Where(i => IsSaverEnabledForItem(i, item, ItemUpdateType.MetadataEdit)).OrderBy(i => i.Name).Select(i => new MetadataPlugin + list.AddRange(_savers.Where(i => IsSaverEnabledForItem(i, item, ItemUpdateType.MetadataEdit, false)).OrderBy(i => i.Name).Select(i => new MetadataPlugin { Name = i.Name, Type = MetadataPluginType.MetadataSaver @@ -498,6 +498,14 @@ namespace MediaBrowser.Providers.Manager private readonly ConcurrentDictionary<string, SemaphoreSlim> _fileLocks = new ConcurrentDictionary<string, SemaphoreSlim>(); + public MetadataOptions GetMetadataOptions(IHasMetadata item) + { + var type = item.GetType().Name; + return ConfigurationManager.Configuration.MetadataOptions + .FirstOrDefault(i => string.Equals(i.ItemType, type, StringComparison.OrdinalIgnoreCase)) ?? + new MetadataOptions(); + } + /// <summary> /// Saves the metadata. /// </summary> @@ -506,7 +514,7 @@ namespace MediaBrowser.Providers.Manager /// <returns>Task.</returns> public async Task SaveMetadata(IHasMetadata item, ItemUpdateType updateType) { - foreach (var saver in _savers.Where(i => IsSaverEnabledForItem(i, item, updateType))) + foreach (var saver in _savers.Where(i => IsSaverEnabledForItem(i, item, updateType, true))) { _logger.Debug("Saving {0} to {1}.", item.Path ?? item.Name, saver.Name); @@ -559,10 +567,17 @@ namespace MediaBrowser.Providers.Manager } } - private bool IsSaverEnabledForItem(IMetadataSaver saver, IHasMetadata item, ItemUpdateType updateType) + private bool IsSaverEnabledForItem(IMetadataSaver saver, IHasMetadata item, ItemUpdateType updateType, bool enforceConfiguration) { + var options = GetMetadataOptions(item); + try { + if (enforceConfiguration && options.DisabledMetadataSavers.Contains(saver.Name, StringComparer.OrdinalIgnoreCase)) + { + return false; + } + return saver.IsEnabledFor(item, updateType); } catch (Exception ex) |
