aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ConfigurationService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-11 00:27:46 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-07-11 00:27:46 -0400
commit59de5c0d14fbf0c09926e37dce0c2e6de69000dd (patch)
tree74a654e937684f156f5c92e0c20f94c0a8d165bd /MediaBrowser.Api/ConfigurationService.cs
parent3cfd765cb4a875ff65acf74826533ba1a804b34a (diff)
update translations
Diffstat (limited to 'MediaBrowser.Api/ConfigurationService.cs')
-rw-r--r--MediaBrowser.Api/ConfigurationService.cs53
1 files changed, 51 insertions, 2 deletions
diff --git a/MediaBrowser.Api/ConfigurationService.cs b/MediaBrowser.Api/ConfigurationService.cs
index 6710461ad..c83028bb2 100644
--- a/MediaBrowser.Api/ConfigurationService.cs
+++ b/MediaBrowser.Api/ConfigurationService.cs
@@ -1,6 +1,8 @@
-using MediaBrowser.Common.Extensions;
+using System;
+using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
@@ -65,6 +67,13 @@ namespace MediaBrowser.Api
}
+ [Route("/System/Configuration/MetadataPlugins/Autoset", "POST")]
+ [Authenticated]
+ public class AutoSetMetadataOptions : IReturnVoid
+ {
+
+ }
+
public class ConfigurationService : BaseApiService
{
/// <summary>
@@ -79,13 +88,15 @@ namespace MediaBrowser.Api
private readonly IFileSystem _fileSystem;
private readonly IProviderManager _providerManager;
+ private readonly ILibraryManager _libraryManager;
- public ConfigurationService(IJsonSerializer jsonSerializer, IServerConfigurationManager configurationManager, IFileSystem fileSystem, IProviderManager providerManager)
+ public ConfigurationService(IJsonSerializer jsonSerializer, IServerConfigurationManager configurationManager, IFileSystem fileSystem, IProviderManager providerManager, ILibraryManager libraryManager)
{
_jsonSerializer = jsonSerializer;
_configurationManager = configurationManager;
_fileSystem = fileSystem;
_providerManager = providerManager;
+ _libraryManager = libraryManager;
}
/// <summary>
@@ -111,6 +122,44 @@ namespace MediaBrowser.Api
return ToOptimizedResult(result);
}
+ public void Post(AutoSetMetadataOptions request)
+ {
+ var service = AutoDetectMetadataService();
+
+ Logger.Info("Setting preferred metadata format to " + service);
+
+ _configurationManager.SetPreferredMetadataService(service);
+ _configurationManager.SaveConfiguration();
+ }
+
+ private string AutoDetectMetadataService()
+ {
+ const string xbmc = "Xbmc Nfo";
+ const string mb = "Media Browser Xml";
+
+ var paths = _libraryManager.GetDefaultVirtualFolders()
+ .SelectMany(i => i.Locations)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(i => new DirectoryInfo(i))
+ .ToList();
+
+ if (paths.Select(i => i.EnumerateFiles("*.xml", SearchOption.AllDirectories))
+ .SelectMany(i => i)
+ .Any())
+ {
+ return xbmc;
+ }
+
+ if (paths.Select(i => i.EnumerateFiles("*.xml", SearchOption.AllDirectories))
+ .SelectMany(i => i)
+ .Any(i => string.Equals(i.Name, "series.xml", StringComparison.OrdinalIgnoreCase) || string.Equals(i.Name, "movie.xml", StringComparison.OrdinalIgnoreCase)))
+ {
+ return mb;
+ }
+
+ return xbmc;
+ }
+
/// <summary>
/// Posts the specified configuraiton.
/// </summary>