Slight re-work of ApplicationPaths so that we can have inherited versions for the UI and Server
This commit is contained in:
parent
a508a997d9
commit
59a3dcc8c1
|
@ -208,7 +208,7 @@ namespace MediaBrowser.Api
|
|||
{
|
||||
if (_FFMpegDirectory == null)
|
||||
{
|
||||
_FFMpegDirectory = System.IO.Path.Combine(ApplicationPaths.ProgramDataPath, "ffmpeg");
|
||||
_FFMpegDirectory = System.IO.Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "ffmpeg");
|
||||
|
||||
if (!Directory.Exists(_FFMpegDirectory))
|
||||
{
|
||||
|
|
|
@ -174,7 +174,7 @@ namespace MediaBrowser.Api.HttpHandlers
|
|||
process.StartInfo = startInfo;
|
||||
|
||||
// FFMpeg writes debug/error info to stderr. This is useful when debugging so let's put it in the log directory.
|
||||
FileStream logStream = new FileStream(Path.Combine(ApplicationPaths.LogDirectoryPath, "ffmpeg-" + Guid.NewGuid().ToString() + ".txt"), FileMode.Create);
|
||||
FileStream logStream = new FileStream(Path.Combine(Kernel.Instance.ApplicationPaths.LogDirectoryPath, "ffmpeg-" + Guid.NewGuid().ToString() + ".txt"), FileMode.Create);
|
||||
|
||||
try
|
||||
{
|
||||
|
|
|
@ -1,299 +0,0 @@
|
|||
using System.Configuration;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace MediaBrowser.Common.Configuration
|
||||
{
|
||||
public static class ApplicationPaths
|
||||
{
|
||||
private static string _programDataPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the program data folder
|
||||
/// </summary>
|
||||
public static string ProgramDataPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_programDataPath == null)
|
||||
{
|
||||
_programDataPath = GetProgramDataPath();
|
||||
}
|
||||
return _programDataPath;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static string _pluginsPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the plugin directory
|
||||
/// </summary>
|
||||
public static string PluginsPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_pluginsPath == null)
|
||||
{
|
||||
_pluginsPath = Path.Combine(ProgramDataPath, "plugins");
|
||||
if (!Directory.Exists(_pluginsPath))
|
||||
{
|
||||
Directory.CreateDirectory(_pluginsPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _pluginsPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _configurationPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the application configuration root directory
|
||||
/// </summary>
|
||||
public static string ConfigurationPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_configurationPath == null)
|
||||
{
|
||||
_configurationPath = Path.Combine(ProgramDataPath, "config");
|
||||
if (!Directory.Exists(_configurationPath))
|
||||
{
|
||||
Directory.CreateDirectory(_configurationPath);
|
||||
}
|
||||
}
|
||||
return _configurationPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _systemConfigurationPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the system configuration directory
|
||||
/// </summary>
|
||||
public static string SystemConfigurationPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_systemConfigurationPath == null)
|
||||
{
|
||||
_systemConfigurationPath = Path.Combine(ConfigurationPath, "system");
|
||||
if (!Directory.Exists(_systemConfigurationPath))
|
||||
{
|
||||
Directory.CreateDirectory(_systemConfigurationPath);
|
||||
}
|
||||
}
|
||||
return _systemConfigurationPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _userConfigurationPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the user configuration directory
|
||||
/// </summary>
|
||||
public static string UserConfigurationPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_userConfigurationPath == null)
|
||||
{
|
||||
_userConfigurationPath = Path.Combine(ConfigurationPath, "user");
|
||||
if (!Directory.Exists(_userConfigurationPath))
|
||||
{
|
||||
Directory.CreateDirectory(_userConfigurationPath);
|
||||
}
|
||||
}
|
||||
return _userConfigurationPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _deviceConfigurationPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the device configuration directory
|
||||
/// </summary>
|
||||
public static string DeviceConfigurationPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_deviceConfigurationPath == null)
|
||||
{
|
||||
_deviceConfigurationPath = Path.Combine(ConfigurationPath, "device");
|
||||
if (!Directory.Exists(_deviceConfigurationPath))
|
||||
{
|
||||
Directory.CreateDirectory(_deviceConfigurationPath);
|
||||
}
|
||||
}
|
||||
return _deviceConfigurationPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _logDirectoryPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the log directory
|
||||
/// </summary>
|
||||
public static string LogDirectoryPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_logDirectoryPath == null)
|
||||
{
|
||||
_logDirectoryPath = Path.Combine(ProgramDataPath, "logs");
|
||||
if (!Directory.Exists(_logDirectoryPath))
|
||||
{
|
||||
Directory.CreateDirectory(_logDirectoryPath);
|
||||
}
|
||||
}
|
||||
return _logDirectoryPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _rootFolderPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the root media directory
|
||||
/// </summary>
|
||||
public static string RootFolderPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_rootFolderPath == null)
|
||||
{
|
||||
_rootFolderPath = Path.Combine(ProgramDataPath, "root");
|
||||
if (!Directory.Exists(_rootFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(_rootFolderPath);
|
||||
}
|
||||
}
|
||||
return _rootFolderPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _ibnPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Images By Name directory
|
||||
/// </summary>
|
||||
public static string ImagesByNamePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_ibnPath == null)
|
||||
{
|
||||
_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");
|
||||
if (!Directory.Exists(_ibnPath))
|
||||
{
|
||||
Directory.CreateDirectory(_ibnPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _ibnPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _PeoplePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the People directory
|
||||
/// </summary>
|
||||
public static string PeoplePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_PeoplePath == null)
|
||||
{
|
||||
_PeoplePath = Path.Combine(ImagesByNamePath, "People");
|
||||
if (!Directory.Exists(_PeoplePath))
|
||||
{
|
||||
Directory.CreateDirectory(_PeoplePath);
|
||||
}
|
||||
}
|
||||
|
||||
return _PeoplePath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _GenrePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Genre directory
|
||||
/// </summary>
|
||||
public static string GenrePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_GenrePath == null)
|
||||
{
|
||||
_GenrePath = Path.Combine(ImagesByNamePath, "Genre");
|
||||
if (!Directory.Exists(_GenrePath))
|
||||
{
|
||||
Directory.CreateDirectory(_GenrePath);
|
||||
}
|
||||
}
|
||||
|
||||
return _GenrePath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _StudioPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Studio directory
|
||||
/// </summary>
|
||||
public static string StudioPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_StudioPath == null)
|
||||
{
|
||||
_StudioPath = Path.Combine(ImagesByNamePath, "Studio");
|
||||
if (!Directory.Exists(_StudioPath))
|
||||
{
|
||||
Directory.CreateDirectory(_StudioPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _StudioPath;
|
||||
}
|
||||
}
|
||||
|
||||
private static string _yearPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Year directory
|
||||
/// </summary>
|
||||
public static string YearPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_yearPath == null)
|
||||
{
|
||||
_yearPath = Path.Combine(ImagesByNamePath, "Year");
|
||||
if (!Directory.Exists(_yearPath))
|
||||
{
|
||||
Directory.CreateDirectory(_yearPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _yearPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the path to the application's ProgramDataFolder
|
||||
/// </summary>
|
||||
private static string GetProgramDataPath()
|
||||
{
|
||||
string programDataPath = ConfigurationManager.AppSettings["ProgramDataPath"];
|
||||
|
||||
// If it's a relative path, e.g. "..\"
|
||||
if (!Path.IsPathRooted(programDataPath))
|
||||
{
|
||||
string path = Assembly.GetExecutingAssembly().Location;
|
||||
path = Path.GetDirectoryName(path);
|
||||
|
||||
programDataPath = Path.Combine(path, programDataPath);
|
||||
|
||||
programDataPath = Path.GetFullPath(programDataPath);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(programDataPath))
|
||||
{
|
||||
Directory.CreateDirectory(programDataPath);
|
||||
}
|
||||
|
||||
return programDataPath;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
133
MediaBrowser.Common/Configuration/BaseApplicationPaths.cs
Normal file
133
MediaBrowser.Common/Configuration/BaseApplicationPaths.cs
Normal file
|
@ -0,0 +1,133 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.IO;
|
||||
using System.Configuration;
|
||||
using System.Reflection;
|
||||
|
||||
namespace MediaBrowser.Common.Configuration
|
||||
{
|
||||
public abstract class BaseApplicationPaths
|
||||
{
|
||||
private string _programDataPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the program data folder
|
||||
/// </summary>
|
||||
public string ProgramDataPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_programDataPath == null)
|
||||
{
|
||||
_programDataPath = GetProgramDataPath();
|
||||
}
|
||||
return _programDataPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _pluginsPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the plugin directory
|
||||
/// </summary>
|
||||
public string PluginsPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_pluginsPath == null)
|
||||
{
|
||||
_pluginsPath = Path.Combine(ProgramDataPath, "plugins");
|
||||
if (!Directory.Exists(_pluginsPath))
|
||||
{
|
||||
Directory.CreateDirectory(_pluginsPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _pluginsPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _logDirectoryPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the log directory
|
||||
/// </summary>
|
||||
public string LogDirectoryPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_logDirectoryPath == null)
|
||||
{
|
||||
_logDirectoryPath = Path.Combine(ProgramDataPath, "logs");
|
||||
if (!Directory.Exists(_logDirectoryPath))
|
||||
{
|
||||
Directory.CreateDirectory(_logDirectoryPath);
|
||||
}
|
||||
}
|
||||
return _logDirectoryPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _configurationDirectoryPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the application configuration root directory
|
||||
/// </summary>
|
||||
public string ConfigurationDirectoryPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_configurationDirectoryPath == null)
|
||||
{
|
||||
_configurationDirectoryPath = Path.Combine(ProgramDataPath, "config");
|
||||
if (!Directory.Exists(_configurationDirectoryPath))
|
||||
{
|
||||
Directory.CreateDirectory(_configurationDirectoryPath);
|
||||
}
|
||||
}
|
||||
return _configurationDirectoryPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _systemConfigurationFilePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the system configuration file
|
||||
/// </summary>
|
||||
public string SystemConfigurationFilePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_systemConfigurationFilePath == null)
|
||||
{
|
||||
_systemConfigurationFilePath = Path.Combine(ConfigurationDirectoryPath, "system.xml");
|
||||
}
|
||||
return _systemConfigurationFilePath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the path to the application's ProgramDataFolder
|
||||
/// </summary>
|
||||
private static string GetProgramDataPath()
|
||||
{
|
||||
string programDataPath = ConfigurationManager.AppSettings["ProgramDataPath"];
|
||||
|
||||
// If it's a relative path, e.g. "..\"
|
||||
if (!Path.IsPathRooted(programDataPath))
|
||||
{
|
||||
string path = Assembly.GetExecutingAssembly().Location;
|
||||
path = Path.GetDirectoryName(path);
|
||||
|
||||
programDataPath = Path.Combine(path, programDataPath);
|
||||
|
||||
programDataPath = Path.GetFullPath(programDataPath);
|
||||
}
|
||||
|
||||
if (!Directory.Exists(programDataPath))
|
||||
{
|
||||
Directory.CreateDirectory(programDataPath);
|
||||
}
|
||||
|
||||
return programDataPath;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,14 +18,17 @@ namespace MediaBrowser.Common.Kernel
|
|||
/// <summary>
|
||||
/// Represents a shared base kernel for both the UI and server apps
|
||||
/// </summary>
|
||||
public abstract class BaseKernel<TConfigurationType> : IDisposable
|
||||
public abstract class BaseKernel<TConfigurationType, TApplicationPathsType> : IDisposable
|
||||
where TConfigurationType : BaseApplicationConfiguration, new()
|
||||
where TApplicationPathsType : BaseApplicationPaths, new()
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the current configuration
|
||||
/// </summary>
|
||||
public TConfigurationType Configuration { get; private set; }
|
||||
|
||||
public TApplicationPathsType ApplicationPaths { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of currently loaded plugins
|
||||
/// </summary>
|
||||
|
@ -45,7 +48,7 @@ namespace MediaBrowser.Common.Kernel
|
|||
|
||||
public BaseKernel()
|
||||
{
|
||||
|
||||
ApplicationPaths = new TApplicationPathsType();
|
||||
}
|
||||
|
||||
public virtual void Init(IProgress<TaskProgress> progress)
|
||||
|
@ -149,13 +152,13 @@ namespace MediaBrowser.Common.Kernel
|
|||
//Configuration information for anything other than server-specific configuration will have to come via the API... -ebr
|
||||
|
||||
// Deserialize config
|
||||
if (!File.Exists(ApplicationPaths.ConfigurationPath))
|
||||
if (!File.Exists(ApplicationPaths.SystemConfigurationFilePath))
|
||||
{
|
||||
Configuration = new TConfigurationType();
|
||||
}
|
||||
else
|
||||
{
|
||||
Configuration = JsonSerializer.DeserializeFromFile<TConfigurationType>(ApplicationPaths.ConfigurationPath);
|
||||
Configuration = XmlSerializer.DeserializeFromFile<TConfigurationType>(ApplicationPaths.SystemConfigurationFilePath);
|
||||
}
|
||||
|
||||
Logger.LoggerInstance.LogSeverity = Configuration.LogSeverity;
|
||||
|
|
|
@ -61,8 +61,8 @@
|
|||
<Reference Include="WindowsBase" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Configuration\ApplicationPaths.cs" />
|
||||
<Compile Include="Configuration\BaseApplicationConfiguration.cs" />
|
||||
<Compile Include="Configuration\BaseApplicationPaths.cs" />
|
||||
<Compile Include="Drawing\DrawingUtils.cs" />
|
||||
<Compile Include="Events\GenericItemEventArgs.cs" />
|
||||
<Compile Include="Net\Handlers\StaticFileHandler.cs" />
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
|
||||
namespace MediaBrowser.Common.Serialization
|
||||
{
|
||||
|
@ -10,22 +9,14 @@ namespace MediaBrowser.Common.Serialization
|
|||
{
|
||||
public static void SerializeToStream<T>(T obj, Stream stream)
|
||||
{
|
||||
ServiceStack.Text.XmlSerializer.SerializeToStream(obj, stream);
|
||||
GetSerializer<T>().Serialize(stream, obj);
|
||||
}
|
||||
|
||||
public static void SerializeToFile<T>(T obj, string file)
|
||||
{
|
||||
using (StreamWriter streamWriter = new StreamWriter(file))
|
||||
using (FileStream stream = new FileStream(file, FileMode.Create))
|
||||
{
|
||||
ServiceStack.Text.XmlSerializer.SerializeToWriter<T>(obj, streamWriter);
|
||||
}
|
||||
}
|
||||
|
||||
public static object DeserializeFromFile(Type type, string file)
|
||||
{
|
||||
using (Stream stream = File.OpenRead(file))
|
||||
{
|
||||
return ServiceStack.Text.XmlSerializer.DeserializeFromStream(type, stream);
|
||||
GetSerializer<T>().Serialize(stream, obj);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,18 +24,18 @@ namespace MediaBrowser.Common.Serialization
|
|||
{
|
||||
using (Stream stream = File.OpenRead(file))
|
||||
{
|
||||
return ServiceStack.Text.XmlSerializer.DeserializeFromStream<T>(stream);
|
||||
return (T)GetSerializer<T>().Deserialize(stream);
|
||||
}
|
||||
}
|
||||
|
||||
public static T DeserializeFromStream<T>(Stream stream)
|
||||
{
|
||||
return ServiceStack.Text.XmlSerializer.DeserializeFromStream<T>(stream);
|
||||
return (T)GetSerializer<T>().Deserialize(stream);
|
||||
}
|
||||
|
||||
public static T DeserializeFromString<T>(string data)
|
||||
private static System.Xml.Serialization.XmlSerializer GetSerializer<T>()
|
||||
{
|
||||
return ServiceStack.Text.XmlSerializer.DeserializeFromString<T>(data);
|
||||
return new System.Xml.Serialization.XmlSerializer(typeof(T));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
154
MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs
Normal file
154
MediaBrowser.Controller/Configuration/ServerApplicationPaths.cs
Normal file
|
@ -0,0 +1,154 @@
|
|||
using System.IO;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
|
||||
namespace MediaBrowser.Controller.Configuration
|
||||
{
|
||||
public class ServerApplicationPaths : BaseApplicationPaths
|
||||
{
|
||||
private string _rootFolderPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the root media directory
|
||||
/// </summary>
|
||||
public string RootFolderPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_rootFolderPath == null)
|
||||
{
|
||||
_rootFolderPath = Path.Combine(ProgramDataPath, "root");
|
||||
if (!Directory.Exists(_rootFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(_rootFolderPath);
|
||||
}
|
||||
}
|
||||
return _rootFolderPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _ibnPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Images By Name directory
|
||||
/// </summary>
|
||||
public string ImagesByNamePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_ibnPath == null)
|
||||
{
|
||||
_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");
|
||||
if (!Directory.Exists(_ibnPath))
|
||||
{
|
||||
Directory.CreateDirectory(_ibnPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _ibnPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _PeoplePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the People directory
|
||||
/// </summary>
|
||||
public string PeoplePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_PeoplePath == null)
|
||||
{
|
||||
_PeoplePath = Path.Combine(ImagesByNamePath, "People");
|
||||
if (!Directory.Exists(_PeoplePath))
|
||||
{
|
||||
Directory.CreateDirectory(_PeoplePath);
|
||||
}
|
||||
}
|
||||
|
||||
return _PeoplePath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _GenrePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Genre directory
|
||||
/// </summary>
|
||||
public string GenrePath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_GenrePath == null)
|
||||
{
|
||||
_GenrePath = Path.Combine(ImagesByNamePath, "Genre");
|
||||
if (!Directory.Exists(_GenrePath))
|
||||
{
|
||||
Directory.CreateDirectory(_GenrePath);
|
||||
}
|
||||
}
|
||||
|
||||
return _GenrePath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _StudioPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Studio directory
|
||||
/// </summary>
|
||||
public string StudioPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_StudioPath == null)
|
||||
{
|
||||
_StudioPath = Path.Combine(ImagesByNamePath, "Studio");
|
||||
if (!Directory.Exists(_StudioPath))
|
||||
{
|
||||
Directory.CreateDirectory(_StudioPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _StudioPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _yearPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Year directory
|
||||
/// </summary>
|
||||
public string YearPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_yearPath == null)
|
||||
{
|
||||
_yearPath = Path.Combine(ImagesByNamePath, "Year");
|
||||
if (!Directory.Exists(_yearPath))
|
||||
{
|
||||
Directory.CreateDirectory(_yearPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _yearPath;
|
||||
}
|
||||
}
|
||||
|
||||
private string _userConfigurationDirectoryPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the user configuration directory
|
||||
/// </summary>
|
||||
public string UserConfigurationDirectoryPath
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_userConfigurationDirectoryPath == null)
|
||||
{
|
||||
_userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "user");
|
||||
if (!Directory.Exists(_userConfigurationDirectoryPath))
|
||||
{
|
||||
Directory.CreateDirectory(_userConfigurationDirectoryPath);
|
||||
}
|
||||
}
|
||||
return _userConfigurationDirectoryPath;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@ using MediaBrowser.Model.Progress;
|
|||
|
||||
namespace MediaBrowser.Controller
|
||||
{
|
||||
public class Kernel : BaseKernel<ServerConfiguration>
|
||||
public class Kernel : BaseKernel<ServerConfiguration, ServerApplicationPaths>
|
||||
{
|
||||
public static Kernel Instance { get; private set; }
|
||||
|
||||
|
@ -43,7 +43,7 @@ namespace MediaBrowser.Controller
|
|||
public IEnumerable<IBaseItemResolver> EntityResolvers { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a kernal based on a Data path, which is akin to our current programdata path
|
||||
/// Creates a kernel based on a Data path, which is akin to our current programdata path
|
||||
/// </summary>
|
||||
public Kernel()
|
||||
: base()
|
||||
|
|
|
@ -305,7 +305,7 @@ namespace MediaBrowser.Controller.Library
|
|||
/// </summary>
|
||||
public Person GetPerson(string name)
|
||||
{
|
||||
string path = Path.Combine(ApplicationPaths.PeoplePath, name);
|
||||
string path = Path.Combine(Kernel.Instance.ApplicationPaths.PeoplePath, name);
|
||||
|
||||
return GetImagesByNameItem<Person>(path, name);
|
||||
}
|
||||
|
@ -315,7 +315,7 @@ namespace MediaBrowser.Controller.Library
|
|||
/// </summary>
|
||||
public Studio GetStudio(string name)
|
||||
{
|
||||
string path = Path.Combine(ApplicationPaths.StudioPath, name);
|
||||
string path = Path.Combine(Kernel.Instance.ApplicationPaths.StudioPath, name);
|
||||
|
||||
return GetImagesByNameItem<Studio>(path, name);
|
||||
}
|
||||
|
@ -325,7 +325,7 @@ namespace MediaBrowser.Controller.Library
|
|||
/// </summary>
|
||||
public Genre GetGenre(string name)
|
||||
{
|
||||
string path = Path.Combine(ApplicationPaths.GenrePath, name);
|
||||
string path = Path.Combine(Kernel.Instance.ApplicationPaths.GenrePath, name);
|
||||
|
||||
return GetImagesByNameItem<Genre>(path, name);
|
||||
}
|
||||
|
@ -335,7 +335,7 @@ namespace MediaBrowser.Controller.Library
|
|||
/// </summary>
|
||||
public Year GetYear(int value)
|
||||
{
|
||||
string path = Path.Combine(ApplicationPaths.YearPath, value.ToString());
|
||||
string path = Path.Combine(Kernel.Instance.ApplicationPaths.YearPath, value.ToString());
|
||||
|
||||
return GetImagesByNameItem<Year>(path, value.ToString());
|
||||
}
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Configuration\ServerApplicationPaths.cs" />
|
||||
<Compile Include="Configuration\ServerConfiguration.cs" />
|
||||
<Compile Include="Events\ItemResolveEventArgs.cs" />
|
||||
<Compile Include="IO\DirectoryWatchers.cs" />
|
||||
|
|
Loading…
Reference in New Issue
Block a user