|
@@ -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
|