| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 | using MediaBrowser.Common.Implementations;using MediaBrowser.Controller;using System.IO;namespace MediaBrowser.Server.Implementations{    /// <summary>    /// Extends BaseApplicationPaths to add paths that are only applicable on the server    /// </summary>    public class ServerApplicationPaths : BaseApplicationPaths, IServerApplicationPaths    {#if (DEBUG)        /// <summary>        /// Initializes a new instance of the <see cref="ServerApplicationPaths" /> class.        /// </summary>        public ServerApplicationPaths()            : base(true)        {        }#else/// <summary>/// Initializes a new instance of the <see cref="ServerApplicationPaths"/> class./// </summary>        public ServerApplicationPaths()            : base(false)        {        }#endif        /// <summary>        /// The _root folder path        /// </summary>        private string _rootFolderPath;        /// <summary>        /// Gets the path to the base root media directory        /// </summary>        /// <value>The root folder path.</value>        public string RootFolderPath        {            get            {                if (_rootFolderPath == null)                {                    _rootFolderPath = Path.Combine(ProgramDataPath, "Root");                    if (!Directory.Exists(_rootFolderPath))                    {                        Directory.CreateDirectory(_rootFolderPath);                    }                }                return _rootFolderPath;            }        }        /// <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>        /// <value>The default user views path.</value>        public string DefaultUserViewsPath        {            get            {                if (_defaultUserViewsPath == null)                {                    _defaultUserViewsPath = Path.Combine(RootFolderPath, "Default");                    if (!Directory.Exists(_defaultUserViewsPath))                    {                        Directory.CreateDirectory(_defaultUserViewsPath);                    }                }                return _defaultUserViewsPath;            }        }        /// <summary>        /// The _localization path        /// </summary>        private string _localizationPath;        /// <summary>        /// Gets the path to localization data.        /// </summary>        /// <value>The localization path.</value>        public string LocalizationPath        {            get            {                if (_localizationPath == null)                {                    _localizationPath = Path.Combine(ProgramDataPath, "Localization");                    if (!Directory.Exists(_localizationPath))                    {                        Directory.CreateDirectory(_localizationPath);                    }                }                return _localizationPath;            }        }        /// <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>        public string ItemsByNamePath        {            get            {                if (_ibnPath == null)                {                    _ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");                    if (!Directory.Exists(_ibnPath))                    {                        Directory.CreateDirectory(_ibnPath);                    }                }                return _ibnPath;            }            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>        /// <value>The people path.</value>        public string PeoplePath        {            get            {                if (_peoplePath == null)                {                    _peoplePath = Path.Combine(ItemsByNamePath, "People");                    if (!Directory.Exists(_peoplePath))                    {                        Directory.CreateDirectory(_peoplePath);                    }                }                return _peoplePath;            }        }        /// <summary>        /// The _genre path        /// </summary>        private string _genrePath;        /// <summary>        /// Gets the path to the Genre directory        /// </summary>        /// <value>The genre path.</value>        public string GenrePath        {            get            {                if (_genrePath == null)                {                    _genrePath = Path.Combine(ItemsByNamePath, "Genre");                    if (!Directory.Exists(_genrePath))                    {                        Directory.CreateDirectory(_genrePath);                    }                }                return _genrePath;            }        }        /// <summary>        /// The _studio path        /// </summary>        private string _studioPath;        /// <summary>        /// Gets the path to the Studio directory        /// </summary>        /// <value>The studio path.</value>        public string StudioPath        {            get            {                if (_studioPath == null)                {                    _studioPath = Path.Combine(ItemsByNamePath, "Studio");                    if (!Directory.Exists(_studioPath))                    {                        Directory.CreateDirectory(_studioPath);                    }                }                return _studioPath;            }        }        /// <summary>        /// The _year path        /// </summary>        private string _yearPath;        /// <summary>        /// Gets the path to the Year directory        /// </summary>        /// <value>The year path.</value>        public string YearPath        {            get            {                if (_yearPath == null)                {                    _yearPath = Path.Combine(ItemsByNamePath, "Year");                    if (!Directory.Exists(_yearPath))                    {                        Directory.CreateDirectory(_yearPath);                    }                }                return _yearPath;            }        }        /// <summary>        /// The _general path        /// </summary>        private string _generalPath;        /// <summary>        /// Gets the path to the General IBN directory        /// </summary>        /// <value>The general path.</value>        public string GeneralPath        {            get            {                if (_generalPath == null)                {                    _generalPath = Path.Combine(ItemsByNamePath, "General");                    if (!Directory.Exists(_generalPath))                    {                        Directory.CreateDirectory(_generalPath);                    }                }                return _generalPath;            }        }        /// <summary>        /// The _ratings path        /// </summary>        private string _ratingsPath;        /// <summary>        /// Gets the path to the Ratings IBN directory        /// </summary>        /// <value>The ratings path.</value>        public string RatingsPath        {            get            {                if (_ratingsPath == null)                {                    _ratingsPath = Path.Combine(ItemsByNamePath, "Ratings");                    if (!Directory.Exists(_ratingsPath))                    {                        Directory.CreateDirectory(_ratingsPath);                    }                }                return _ratingsPath;            }        }        /// <summary>        /// The _media info images path        /// </summary>        private string _mediaInfoImagesPath;        /// <summary>        /// Gets the media info images path.        /// </summary>        /// <value>The media info images path.</value>        public string MediaInfoImagesPath        {            get            {                if (_mediaInfoImagesPath == null)                {                    _mediaInfoImagesPath = Path.Combine(ItemsByNamePath, "MediaInfo");                    if (!Directory.Exists(_mediaInfoImagesPath))                    {                        Directory.CreateDirectory(_mediaInfoImagesPath);                    }                }                return _mediaInfoImagesPath;            }        }        /// <summary>        /// The _user configuration directory path        /// </summary>        private string _userConfigurationDirectoryPath;        /// <summary>        /// Gets the path to the user configuration directory        /// </summary>        /// <value>The user configuration directory path.</value>        public string UserConfigurationDirectoryPath        {            get            {                if (_userConfigurationDirectoryPath == null)                {                    _userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "users");                    if (!Directory.Exists(_userConfigurationDirectoryPath))                    {                        Directory.CreateDirectory(_userConfigurationDirectoryPath);                    }                }                return _userConfigurationDirectoryPath;            }        }        /// <summary>        /// The _f F MPEG stream cache path        /// </summary>        private string _fFMpegStreamCachePath;        /// <summary>        /// Gets the FF MPEG stream cache path.        /// </summary>        /// <value>The FF MPEG stream cache path.</value>        public string EncodedMediaCachePath        {            get            {                if (_fFMpegStreamCachePath == null)                {                    _fFMpegStreamCachePath = Path.Combine(CachePath, "encoded-media");                    if (!Directory.Exists(_fFMpegStreamCachePath))                    {                        Directory.CreateDirectory(_fFMpegStreamCachePath);                    }                }                return _fFMpegStreamCachePath;            }        }        /// <summary>        /// The _images data path        /// </summary>        private string _downloadedImagesDataPath;        /// <summary>        /// Gets the images data path.        /// </summary>        /// <value>The images data path.</value>        public string DownloadedImagesDataPath        {            get            {                if (_downloadedImagesDataPath == null)                {                    _downloadedImagesDataPath = Path.Combine(DataPath, "remote-images");                    if (!Directory.Exists(_downloadedImagesDataPath))                    {                        Directory.CreateDirectory(_downloadedImagesDataPath);                    }                }                return _downloadedImagesDataPath;            }        }        /// <summary>        /// The _music artists path        /// </summary>        private string _musicArtistsPath;        /// <summary>        /// Gets the artists path.        /// </summary>        /// <value>The artists path.</value>        public string ArtistsPath        {            get            {                if (_musicArtistsPath == null)                {                    _musicArtistsPath = Path.Combine(ItemsByNamePath, "Artists");                    if (!Directory.Exists(_musicArtistsPath))                    {                        Directory.CreateDirectory(_musicArtistsPath);                    }                }                return _musicArtistsPath;            }        }    }}
 |