From 74625cc580076fe8f67f2ff40f99ecf7a33f13e6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 26 Feb 2014 22:57:37 -0500 Subject: [PATCH] add back global metadata settings --- MediaBrowser.Api/ConfigurationService.cs | 59 ----------------- .../Manager/ProviderManager.cs | 66 ++++++++++++++----- 2 files changed, 50 insertions(+), 75 deletions(-) diff --git a/MediaBrowser.Api/ConfigurationService.cs b/MediaBrowser.Api/ConfigurationService.cs index b0b74ed662..6007043503 100644 --- a/MediaBrowser.Api/ConfigurationService.cs +++ b/MediaBrowser.Api/ConfigurationService.cs @@ -2,7 +2,6 @@ using MediaBrowser.Common.IO; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Providers; @@ -48,13 +47,6 @@ namespace MediaBrowser.Api } - [Route("/System/Configuration/SaveLocalMetadata", "POST")] - [Api(("Updates saving of local metadata and images for all types"))] - public class UpdateSaveLocalMetadata : IReturnVoid - { - public bool Enabled { get; set; } - } - [Route("/System/Configuration/VideoImageExtraction", "POST")] [Api(("Updates image extraction for all types"))] public class UpdateVideoImageExtraction : IReturnVoid @@ -144,57 +136,6 @@ namespace MediaBrowser.Api _configurationManager.SaveConfiguration(); } - public void Post(UpdateSaveLocalMetadata request) - { - var config = _configurationManager.Configuration; - - if (request.Enabled) - { - config.SaveLocalMeta = true; - - foreach (var options in config.MetadataOptions) - { - options.DisabledMetadataSavers = new string[] { }; - } - } - else - { - config.SaveLocalMeta = false; - - DisableSaversForType(typeof(Game), config); - DisableSaversForType(typeof(GameSystem), config); - DisableSaversForType(typeof(Movie), config); - DisableSaversForType(typeof(BoxSet), config); - DisableSaversForType(typeof(Book), config); - DisableSaversForType(typeof(Series), config); - DisableSaversForType(typeof(Season), config); - DisableSaversForType(typeof(Episode), config); - DisableSaversForType(typeof(MusicAlbum), config); - DisableSaversForType(typeof(MusicArtist), config); - DisableSaversForType(typeof(AdultVideo), config); - DisableSaversForType(typeof(MusicVideo), config); - DisableSaversForType(typeof(Video), config); - } - - _configurationManager.SaveConfiguration(); - } - - private void DisableSaversForType(Type type, ServerConfiguration config) - { - var options = GetMetadataOptions(type, config); - - const string mediabrowserSaverName = "Media Browser Xml"; - - if (!options.DisabledMetadataSavers.Contains(mediabrowserSaverName, StringComparer.OrdinalIgnoreCase)) - { - var list = options.DisabledMetadataSavers.ToList(); - - list.Add(mediabrowserSaverName); - - options.DisabledMetadataSavers = list.ToArray(); - } - } - private void EnableImageExtractionForType(Type type, ServerConfiguration config, bool enabled) { var options = GetMetadataOptions(type, config); diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index 83331ebbb5..942f414b6f 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -276,6 +276,11 @@ namespace MediaBrowser.Providers.Manager if (provider is IRemoteMetadataProvider) { + if (!ConfigurationManager.Configuration.EnableInternetProviders) + { + return false; + } + if (Array.IndexOf(options.DisabledMetadataFetchers, provider.Name) != -1) { return false; @@ -312,6 +317,11 @@ namespace MediaBrowser.Providers.Manager if (provider is IRemoteImageProvider) { + if (!ConfigurationManager.Configuration.EnableInternetProviders) + { + return false; + } + if (Array.IndexOf(options.DisabledImageFetchers, provider.Name) != -1) { return false; @@ -473,19 +483,25 @@ namespace MediaBrowser.Providers.Manager Type = MetadataPluginType.LocalMetadataProvider })); - // Fetchers - list.AddRange(providers.Where(i => (i is IRemoteMetadataProvider)).Select(i => new MetadataPlugin + if (ConfigurationManager.Configuration.EnableInternetProviders) { - Name = i.Name, - Type = MetadataPluginType.MetadataFetcher - })); - - // Savers - list.AddRange(_savers.Where(i => IsSaverEnabledForItem(i, item, ItemUpdateType.MetadataEdit, false)).OrderBy(i => i.Name).Select(i => new MetadataPlugin + // Fetchers + list.AddRange(providers.Where(i => (i is IRemoteMetadataProvider)).Select(i => new MetadataPlugin + { + Name = i.Name, + Type = MetadataPluginType.MetadataFetcher + })); + } + + if (item.IsSaveLocalMetadataEnabled()) { - Name = i.Name, - Type = MetadataPluginType.MetadataSaver - })); + // Savers + list.AddRange(_savers.Where(i => IsSaverEnabledForItem(i, item, ItemUpdateType.MetadataEdit, true)).OrderBy(i => i.Name).Select(i => new MetadataPlugin + { + Name = i.Name, + Type = MetadataPluginType.MetadataSaver + })); + } } private void AddImagePlugins(List list, T item, List imageProviders) @@ -499,8 +515,18 @@ namespace MediaBrowser.Providers.Manager Type = MetadataPluginType.LocalImageProvider })); + if (ConfigurationManager.Configuration.EnableInternetProviders) + { + // Fetchers + list.AddRange(imageProviders.Where(i => i is IRemoteImageProvider).Select(i => new MetadataPlugin + { + Name = i.Name, + Type = MetadataPluginType.ImageFetcher + })); + } + // Fetchers - list.AddRange(imageProviders.Where(i => !(i is ILocalImageProvider)).Select(i => new MetadataPlugin + list.AddRange(imageProviders.Where(i => i is IDynamicImageProvider).Select(i => new MetadataPlugin { Name = i.Name, Type = MetadataPluginType.ImageFetcher @@ -526,7 +552,7 @@ namespace MediaBrowser.Providers.Manager /// Task. public async Task SaveMetadata(IHasMetadata item, ItemUpdateType updateType) { - foreach (var saver in _savers.Where(i => IsSaverEnabledForItem(i, item, updateType, true))) + foreach (var saver in _savers.Where(i => IsSaverEnabledForItem(i, item, updateType, false))) { _logger.Debug("Saving {0} to {1}.", item.Path ?? item.Name, saver.Name); @@ -579,15 +605,23 @@ namespace MediaBrowser.Providers.Manager } } - private bool IsSaverEnabledForItem(IMetadataSaver saver, IHasMetadata item, ItemUpdateType updateType, bool enforceConfiguration) + private bool IsSaverEnabledForItem(IMetadataSaver saver, IHasMetadata item, ItemUpdateType updateType, bool includeDisabled) { var options = GetMetadataOptions(item); try { - if (enforceConfiguration && options.DisabledMetadataSavers.Contains(saver.Name, StringComparer.OrdinalIgnoreCase)) + if (!includeDisabled) { - return false; + if (!item.IsSaveLocalMetadataEnabled()) + { + return false; + } + + if (options.DisabledMetadataSavers.Contains(saver.Name, StringComparer.OrdinalIgnoreCase)) + { + return false; + } } return saver.IsEnabledFor(item, updateType);