jellyfin-server/MediaBrowser.Server.Implementations/ServerApplicationPaths.cs

258 lines
6.7 KiB
C#
Raw Normal View History

2014-02-08 20:02:35 +00:00
using System;
using MediaBrowser.Common.Implementations;
2013-02-24 21:53:54 +00:00
using MediaBrowser.Controller;
2013-02-21 01:33:05 +00:00
using System.IO;
2013-02-24 21:53:54 +00:00
namespace MediaBrowser.Server.Implementations
2013-02-21 01:33:05 +00:00
{
/// <summary>
/// Extends BaseApplicationPaths to add paths that are only applicable on the server
/// </summary>
2013-02-24 21:53:54 +00:00
public class ServerApplicationPaths : BaseApplicationPaths, IServerApplicationPaths
2013-02-21 01:33:05 +00:00
{
#if (DEBUG)
/// <summary>
/// Initializes a new instance of the <see cref="ServerApplicationPaths" /> class.
/// </summary>
public ServerApplicationPaths(string applicationPath)
: base(true, applicationPath)
{
}
#else
/// <summary>
/// Initializes a new instance of the <see cref="ServerApplicationPaths"/> class.
/// </summary>
public ServerApplicationPaths(string applicationPath)
: base(false, applicationPath)
{
}
#endif
2013-09-21 01:04:14 +00:00
/// <summary>
/// Initializes a new instance of the <see cref="BaseApplicationPaths" /> class.
/// </summary>
public ServerApplicationPaths(string programDataPath, string applicationPath)
: base(programDataPath, applicationPath)
2013-09-21 01:04:14 +00:00
{
}
2013-02-21 01:33:05 +00:00
/// <summary>
/// Gets the path to the base root media directory
/// </summary>
/// <value>The root folder path.</value>
public string RootFolderPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ProgramDataPath, "root");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to the default user view directory. Used if no specific user view is defined.
/// </summary>
/// <value>The default user views path.</value>
public string DefaultUserViewsPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(RootFolderPath, "default");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to localization data.
/// </summary>
/// <value>The localization path.</value>
public string LocalizationPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ProgramDataPath, "localization");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// The _ibn path
/// </summary>
private string _ibnPath;
/// <summary>
/// Gets the path to the Images By Name directory
/// </summary>
/// <value>The images by name path.</value>
2013-04-23 19:17:21 +00:00
public string ItemsByNamePath
2013-02-21 01:33:05 +00:00
{
get
{
2013-06-04 16:48:23 +00:00
return _ibnPath ?? (_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"));
2013-02-21 01:33:05 +00:00
}
2013-04-23 19:17:21 +00:00
set
{
_ibnPath = value;
}
2013-02-21 01:33:05 +00:00
}
/// <summary>
/// Gets the path to the People directory
/// </summary>
/// <value>The people path.</value>
public string PeoplePath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "People");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to the Genre directory
/// </summary>
/// <value>The genre path.</value>
public string GenrePath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "Genre");
2013-02-21 01:33:05 +00:00
}
}
2013-06-11 03:31:00 +00:00
/// <summary>
/// Gets the path to the Genre directory
/// </summary>
/// <value>The genre path.</value>
public string MusicGenrePath
{
get
{
2013-06-13 20:15:16 +00:00
return Path.Combine(ItemsByNamePath, "MusicGenre");
2013-06-11 03:31:00 +00:00
}
}
2013-09-21 01:04:14 +00:00
2013-02-21 01:33:05 +00:00
/// <summary>
/// Gets the path to the Studio directory
/// </summary>
/// <value>The studio path.</value>
public string StudioPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "Studio");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to the Year directory
/// </summary>
/// <value>The year path.</value>
public string YearPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "Year");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to the General IBN directory
/// </summary>
/// <value>The general path.</value>
public string GeneralPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "general");
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the path to the Ratings IBN directory
/// </summary>
/// <value>The ratings path.</value>
public string RatingsPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "ratings");
2013-02-21 01:33:05 +00:00
}
}
2013-05-02 14:30:38 +00:00
/// <summary>
/// Gets the media info images path.
/// </summary>
/// <value>The media info images path.</value>
public string MediaInfoImagesPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "mediainfo");
2013-05-02 14:30:38 +00:00
}
}
2013-02-21 01:33:05 +00:00
/// <summary>
/// Gets the path to the user configuration directory
/// </summary>
/// <value>The user configuration directory path.</value>
public string UserConfigurationDirectoryPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ConfigurationDirectoryPath, "users");
2013-02-21 01:33:05 +00:00
}
}
private string _transcodingTempPath;
public string TranscodingTempPath
2013-02-21 01:33:05 +00:00
{
get
{
return _transcodingTempPath ?? (_transcodingTempPath = Path.Combine(ProgramDataPath, "transcoding-temp"));
}
set
{
_transcodingTempPath = value;
2013-02-21 01:33:05 +00:00
}
}
/// <summary>
/// Gets the artists path.
/// </summary>
/// <value>The artists path.</value>
public string ArtistsPath
{
get
{
2013-06-04 16:48:23 +00:00
return Path.Combine(ItemsByNamePath, "artists");
}
}
2013-07-01 17:17:33 +00:00
/// <summary>
/// Gets the game genre path.
/// </summary>
/// <value>The game genre path.</value>
public string GameGenrePath
{
get
{
return Path.Combine(ItemsByNamePath, "GameGenre");
}
}
2014-02-08 20:02:35 +00:00
public string InternalMetadataPath
{
get
{
return Path.Combine(DataPath, "metadata");
}
}
public string GetInternalMetadataPath(Guid id)
{
var idString = id.ToString("N");
return Path.Combine(InternalMetadataPath, idString.Substring(0, 2), idString);
}
2013-02-21 01:33:05 +00:00
}
}