rework image extraction settings

This commit is contained in:
Luke Pulverenti
2014-02-19 13:50:37 -05:00
parent 411ce21751
commit 4a39df98cd
20 changed files with 219 additions and 72 deletions

View File

@@ -55,6 +55,13 @@ namespace MediaBrowser.Api
public bool Enabled { get; set; }
}
[Route("/System/Configuration/VideoImageExtraction", "POST")]
[Api(("Updates image extraction for all types"))]
public class UpdateVideoImageExtraction : IReturnVoid
{
public bool Enabled { get; set; }
}
public class ConfigurationService : BaseApiService
{
/// <summary>
@@ -123,6 +130,20 @@ namespace MediaBrowser.Api
/// This is a temporary method used until image settings get broken out.
/// </summary>
/// <param name="request"></param>
public void Post(UpdateVideoImageExtraction request)
{
var config = _configurationManager.Configuration;
EnableImageExtractionForType(typeof(Movie), config, request.Enabled);
EnableImageExtractionForType(typeof(Episode), config, request.Enabled);
EnableImageExtractionForType(typeof(AdultVideo), config, request.Enabled);
EnableImageExtractionForType(typeof(MusicVideo), config, request.Enabled);
EnableImageExtractionForType(typeof(Video), config, request.Enabled);
EnableImageExtractionForType(typeof(Trailer), config, request.Enabled);
_configurationManager.SaveConfiguration();
}
public void Post(UpdateSaveLocalMetadata request)
{
var config = _configurationManager.Configuration;
@@ -157,7 +178,7 @@ namespace MediaBrowser.Api
_configurationManager.SaveConfiguration();
}
private void DisableSaversForType(Type type, ServerConfiguration config)
{
var options = GetMetadataOptions(type, config);
@@ -174,6 +195,32 @@ namespace MediaBrowser.Api
}
}
private void EnableImageExtractionForType(Type type, ServerConfiguration config, bool enabled)
{
var options = GetMetadataOptions(type, config);
const string imageProviderName = "Screen Grabber";
var contains = options.DisabledImageFetchers.Contains(imageProviderName, StringComparer.OrdinalIgnoreCase);
if (!enabled && !contains)
{
var list = options.DisabledImageFetchers.ToList();
list.Add(imageProviderName);
options.DisabledImageFetchers = list.ToArray();
}
else if (enabled && contains)
{
var list = options.DisabledImageFetchers.ToList();
list.Remove(imageProviderName);
options.DisabledImageFetchers = list.ToArray();
}
}
private MetadataOptions GetMetadataOptions(Type type, ServerConfiguration config)
{
var options = config.MetadataOptions