defer path creation when possible
This commit is contained in:
parent
02fedead11
commit
2e408e40c0
|
@ -562,6 +562,13 @@ namespace MediaBrowser.Api.Playback
|
|||
/// <returns>Task.</returns>
|
||||
protected async Task StartFfMpeg(StreamState state, string outputPath)
|
||||
{
|
||||
var parentPath = Path.GetDirectoryName(outputPath);
|
||||
|
||||
if (!Directory.Exists(parentPath))
|
||||
{
|
||||
Directory.CreateDirectory(parentPath);
|
||||
}
|
||||
|
||||
var video = state.Item as Video;
|
||||
|
||||
if (video != null && video.VideoType == VideoType.Iso && video.IsoType.HasValue && IsoManager.CanMount(video.Path))
|
||||
|
|
|
@ -45,7 +45,7 @@ namespace MediaBrowser.Common.Implementations
|
|||
/// <summary>
|
||||
/// Gets the path to the system folder
|
||||
/// </summary>
|
||||
public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "System"); } }
|
||||
public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "system"); } }
|
||||
|
||||
/// <summary>
|
||||
/// The _data directory
|
||||
|
@ -160,7 +160,7 @@ namespace MediaBrowser.Common.Implementations
|
|||
{
|
||||
if (_tempUpdatePath == null)
|
||||
{
|
||||
_tempUpdatePath = Path.Combine(ProgramDataPath, "Updates");
|
||||
_tempUpdatePath = Path.Combine(ProgramDataPath, "updates");
|
||||
if (!Directory.Exists(_tempUpdatePath))
|
||||
{
|
||||
Directory.CreateDirectory(_tempUpdatePath);
|
||||
|
@ -219,10 +219,6 @@ namespace MediaBrowser.Common.Implementations
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _system configuration file path
|
||||
/// </summary>
|
||||
private string _systemConfigurationFilePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the system configuration file
|
||||
/// </summary>
|
||||
|
@ -231,7 +227,7 @@ namespace MediaBrowser.Common.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
return _systemConfigurationFilePath ?? (_systemConfigurationFilePath = Path.Combine(ConfigurationDirectoryPath, "system.xml"));
|
||||
return Path.Combine(ConfigurationDirectoryPath, "system.xml");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,19 +28,14 @@ namespace MediaBrowser.Controller.Entities
|
|||
{
|
||||
get
|
||||
{
|
||||
if (Configuration.UseCustomLibrary)
|
||||
{
|
||||
var rootFolderPath = GetRootFolderPath(Name);
|
||||
var path = Configuration.UseCustomLibrary ? GetRootFolderPath(Name) : ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
|
||||
|
||||
if (!Directory.Exists(rootFolderPath))
|
||||
if (!Directory.Exists(path))
|
||||
{
|
||||
Directory.CreateDirectory(rootFolderPath);
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
return rootFolderPath;
|
||||
}
|
||||
|
||||
return ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
|
||||
return path;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ namespace MediaBrowser.Model.Configuration
|
|||
public BaseApplicationConfiguration()
|
||||
{
|
||||
EnableAutoUpdate = true;
|
||||
LogFileRetentionDays = 7;
|
||||
LogFileRetentionDays = 3;
|
||||
|
||||
#if (DEBUG)
|
||||
EnableDebugLevelLogging = true;
|
||||
|
|
|
@ -558,6 +558,12 @@ namespace MediaBrowser.Server.Implementations.Library
|
|||
public AggregateFolder CreateRootFolder()
|
||||
{
|
||||
var rootFolderPath = ConfigurationManager.ApplicationPaths.RootFolderPath;
|
||||
|
||||
if (!Directory.Exists(rootFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(rootFolderPath);
|
||||
}
|
||||
|
||||
var rootFolder = RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath);
|
||||
|
||||
// Add in the plug-in folders
|
||||
|
|
|
@ -26,10 +26,6 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
}
|
||||
#endif
|
||||
/// <summary>
|
||||
/// The _root folder path
|
||||
/// </summary>
|
||||
private string _rootFolderPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the base root media directory
|
||||
/// </summary>
|
||||
|
@ -38,22 +34,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_rootFolderPath == null)
|
||||
{
|
||||
_rootFolderPath = Path.Combine(ProgramDataPath, "Root");
|
||||
if (!Directory.Exists(_rootFolderPath))
|
||||
{
|
||||
Directory.CreateDirectory(_rootFolderPath);
|
||||
}
|
||||
}
|
||||
return _rootFolderPath;
|
||||
return Path.Combine(ProgramDataPath, "root");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _default user views path
|
||||
/// </summary>
|
||||
private string _defaultUserViewsPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the default user view directory. Used if no specific user view is defined.
|
||||
/// </summary>
|
||||
|
@ -62,22 +46,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_defaultUserViewsPath == null)
|
||||
{
|
||||
_defaultUserViewsPath = Path.Combine(RootFolderPath, "Default");
|
||||
if (!Directory.Exists(_defaultUserViewsPath))
|
||||
{
|
||||
Directory.CreateDirectory(_defaultUserViewsPath);
|
||||
}
|
||||
}
|
||||
return _defaultUserViewsPath;
|
||||
return Path.Combine(RootFolderPath, "default");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _localization path
|
||||
/// </summary>
|
||||
private string _localizationPath;
|
||||
/// <summary>
|
||||
/// Gets the path to localization data.
|
||||
/// </summary>
|
||||
|
@ -86,15 +58,7 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_localizationPath == null)
|
||||
{
|
||||
_localizationPath = Path.Combine(ProgramDataPath, "Localization");
|
||||
if (!Directory.Exists(_localizationPath))
|
||||
{
|
||||
Directory.CreateDirectory(_localizationPath);
|
||||
}
|
||||
}
|
||||
return _localizationPath;
|
||||
return Path.Combine(ProgramDataPath, "localization");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -110,36 +74,14 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_ibnPath == null)
|
||||
{
|
||||
_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");
|
||||
if (!Directory.Exists(_ibnPath))
|
||||
{
|
||||
Directory.CreateDirectory(_ibnPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _ibnPath;
|
||||
return _ibnPath ?? (_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"));
|
||||
}
|
||||
set
|
||||
{
|
||||
_ibnPath = value;
|
||||
|
||||
_peoplePath = null;
|
||||
_studioPath = null;
|
||||
_genrePath = null;
|
||||
_yearPath = null;
|
||||
_musicArtistsPath = null;
|
||||
_generalPath = null;
|
||||
_ratingsPath = null;
|
||||
_mediaInfoImagesPath = null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _people path
|
||||
/// </summary>
|
||||
private string _peoplePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the People directory
|
||||
/// </summary>
|
||||
|
@ -148,23 +90,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_peoplePath == null)
|
||||
{
|
||||
_peoplePath = Path.Combine(ItemsByNamePath, "People");
|
||||
if (!Directory.Exists(_peoplePath))
|
||||
{
|
||||
Directory.CreateDirectory(_peoplePath);
|
||||
return Path.Combine(ItemsByNamePath, "People");
|
||||
}
|
||||
}
|
||||
|
||||
return _peoplePath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _genre path
|
||||
/// </summary>
|
||||
private string _genrePath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Genre directory
|
||||
/// </summary>
|
||||
|
@ -173,23 +102,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_genrePath == null)
|
||||
{
|
||||
_genrePath = Path.Combine(ItemsByNamePath, "Genre");
|
||||
if (!Directory.Exists(_genrePath))
|
||||
{
|
||||
Directory.CreateDirectory(_genrePath);
|
||||
return Path.Combine(ItemsByNamePath, "Genre");
|
||||
}
|
||||
}
|
||||
|
||||
return _genrePath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _studio path
|
||||
/// </summary>
|
||||
private string _studioPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Studio directory
|
||||
/// </summary>
|
||||
|
@ -198,23 +114,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_studioPath == null)
|
||||
{
|
||||
_studioPath = Path.Combine(ItemsByNamePath, "Studio");
|
||||
if (!Directory.Exists(_studioPath))
|
||||
{
|
||||
Directory.CreateDirectory(_studioPath);
|
||||
return Path.Combine(ItemsByNamePath, "Studio");
|
||||
}
|
||||
}
|
||||
|
||||
return _studioPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _year path
|
||||
/// </summary>
|
||||
private string _yearPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Year directory
|
||||
/// </summary>
|
||||
|
@ -223,23 +126,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_yearPath == null)
|
||||
{
|
||||
_yearPath = Path.Combine(ItemsByNamePath, "Year");
|
||||
if (!Directory.Exists(_yearPath))
|
||||
{
|
||||
Directory.CreateDirectory(_yearPath);
|
||||
return Path.Combine(ItemsByNamePath, "Year");
|
||||
}
|
||||
}
|
||||
|
||||
return _yearPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _general path
|
||||
/// </summary>
|
||||
private string _generalPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the General IBN directory
|
||||
/// </summary>
|
||||
|
@ -248,23 +138,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_generalPath == null)
|
||||
{
|
||||
_generalPath = Path.Combine(ItemsByNamePath, "General");
|
||||
if (!Directory.Exists(_generalPath))
|
||||
{
|
||||
Directory.CreateDirectory(_generalPath);
|
||||
return Path.Combine(ItemsByNamePath, "general");
|
||||
}
|
||||
}
|
||||
|
||||
return _generalPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _ratings path
|
||||
/// </summary>
|
||||
private string _ratingsPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the Ratings IBN directory
|
||||
/// </summary>
|
||||
|
@ -273,23 +150,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_ratingsPath == null)
|
||||
{
|
||||
_ratingsPath = Path.Combine(ItemsByNamePath, "Ratings");
|
||||
if (!Directory.Exists(_ratingsPath))
|
||||
{
|
||||
Directory.CreateDirectory(_ratingsPath);
|
||||
return Path.Combine(ItemsByNamePath, "ratings");
|
||||
}
|
||||
}
|
||||
|
||||
return _ratingsPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _media info images path
|
||||
/// </summary>
|
||||
private string _mediaInfoImagesPath;
|
||||
/// <summary>
|
||||
/// Gets the media info images path.
|
||||
/// </summary>
|
||||
|
@ -298,23 +162,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_mediaInfoImagesPath == null)
|
||||
{
|
||||
_mediaInfoImagesPath = Path.Combine(ItemsByNamePath, "MediaInfo");
|
||||
if (!Directory.Exists(_mediaInfoImagesPath))
|
||||
{
|
||||
Directory.CreateDirectory(_mediaInfoImagesPath);
|
||||
return Path.Combine(ItemsByNamePath, "mediainfo");
|
||||
}
|
||||
}
|
||||
|
||||
return _mediaInfoImagesPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _user configuration directory path
|
||||
/// </summary>
|
||||
private string _userConfigurationDirectoryPath;
|
||||
/// <summary>
|
||||
/// Gets the path to the user configuration directory
|
||||
/// </summary>
|
||||
|
@ -323,22 +174,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_userConfigurationDirectoryPath == null)
|
||||
{
|
||||
_userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "users");
|
||||
if (!Directory.Exists(_userConfigurationDirectoryPath))
|
||||
{
|
||||
Directory.CreateDirectory(_userConfigurationDirectoryPath);
|
||||
}
|
||||
}
|
||||
return _userConfigurationDirectoryPath;
|
||||
return Path.Combine(ConfigurationDirectoryPath, "users");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _f F MPEG stream cache path
|
||||
/// </summary>
|
||||
private string _fFMpegStreamCachePath;
|
||||
/// <summary>
|
||||
/// Gets the FF MPEG stream cache path.
|
||||
/// </summary>
|
||||
|
@ -347,24 +186,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_fFMpegStreamCachePath == null)
|
||||
{
|
||||
_fFMpegStreamCachePath = Path.Combine(CachePath, "encoded-media");
|
||||
|
||||
if (!Directory.Exists(_fFMpegStreamCachePath))
|
||||
{
|
||||
Directory.CreateDirectory(_fFMpegStreamCachePath);
|
||||
return Path.Combine(CachePath, "encoded-media");
|
||||
}
|
||||
}
|
||||
|
||||
return _fFMpegStreamCachePath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _images data path
|
||||
/// </summary>
|
||||
private string _downloadedImagesDataPath;
|
||||
/// <summary>
|
||||
/// Gets the images data path.
|
||||
/// </summary>
|
||||
|
@ -373,24 +198,10 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_downloadedImagesDataPath == null)
|
||||
{
|
||||
_downloadedImagesDataPath = Path.Combine(DataPath, "remote-images");
|
||||
|
||||
if (!Directory.Exists(_downloadedImagesDataPath))
|
||||
{
|
||||
Directory.CreateDirectory(_downloadedImagesDataPath);
|
||||
return Path.Combine(DataPath, "remote-images");
|
||||
}
|
||||
}
|
||||
|
||||
return _downloadedImagesDataPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The _music artists path
|
||||
/// </summary>
|
||||
private string _musicArtistsPath;
|
||||
/// <summary>
|
||||
/// Gets the artists path.
|
||||
/// </summary>
|
||||
|
@ -399,16 +210,7 @@ namespace MediaBrowser.Server.Implementations
|
|||
{
|
||||
get
|
||||
{
|
||||
if (_musicArtistsPath == null)
|
||||
{
|
||||
_musicArtistsPath = Path.Combine(ItemsByNamePath, "Artists");
|
||||
if (!Directory.Exists(_musicArtistsPath))
|
||||
{
|
||||
Directory.CreateDirectory(_musicArtistsPath);
|
||||
}
|
||||
}
|
||||
|
||||
return _musicArtistsPath;
|
||||
return Path.Combine(ItemsByNamePath, "artists");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<projectUrl>https://github.com/MediaBrowser/MediaBrowser</projectUrl>
|
||||
<iconUrl>http://www.mb3admin.com/images/mb3icons1-1.png</iconUrl>
|
||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||
<description>Contains common components shared by Media Browser Theatre and Media Browser Server. Not intended for plugin developer consumption.</description>
|
||||
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
|
||||
<copyright>Copyright © Media Browser 2013</copyright>
|
||||
<dependencies>
|
||||
<dependency id="MediaBrowser.Common" version="3.0.113" />
|
||||
|
@ -20,6 +20,5 @@
|
|||
</metadata>
|
||||
<files>
|
||||
<file src="dlls\MediaBrowser.Common.Implementations.dll" target="lib\net45\MediaBrowser.Common.Implementations.dll" />
|
||||
<file src="dlls\Mediabrowser.PluginSecurity.dll" target="lib\net45\Mediabrowser.PluginSecurity.dll" />
|
||||
</files>
|
||||
</package>
|
Loading…
Reference in New Issue
Block a user