mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-10-01 07:55:22 +02:00
PathProvider. visit us for all of your pathing needs.
This commit is contained in:
@@ -9,12 +9,13 @@ namespace NzbDrone.Core.Providers.Core
|
||||
{
|
||||
public class ConfigFileProvider
|
||||
{
|
||||
private string _configFile = Path.Combine(new EnviromentProvider().AppDataPath, "Config.xml");
|
||||
private readonly PathProvider _pathProvider;
|
||||
|
||||
public string ConfigFile
|
||||
private readonly string _configFile;
|
||||
public ConfigFileProvider(PathProvider pathProvider)
|
||||
{
|
||||
get { return _configFile; }
|
||||
set { _configFile = value; }
|
||||
_pathProvider = pathProvider;
|
||||
_configFile = _pathProvider.AppConfigFile;
|
||||
}
|
||||
|
||||
public virtual int Port
|
||||
@@ -37,7 +38,7 @@ namespace NzbDrone.Core.Providers.Core
|
||||
|
||||
public virtual string GetValue(string key, object defaultValue, string parent = null)
|
||||
{
|
||||
var xDoc = XDocument.Load(ConfigFile);
|
||||
var xDoc = XDocument.Load(_configFile);
|
||||
var config = xDoc.Descendants("Config").Single();
|
||||
|
||||
var parentContainer = config;
|
||||
@@ -50,7 +51,7 @@ namespace NzbDrone.Core.Providers.Core
|
||||
SetValue(key, defaultValue, parent);
|
||||
|
||||
//Reload the configFile
|
||||
xDoc = XDocument.Load(ConfigFile);
|
||||
xDoc = XDocument.Load(_configFile);
|
||||
config = xDoc.Descendants("Config").Single();
|
||||
}
|
||||
|
||||
@@ -81,7 +82,7 @@ namespace NzbDrone.Core.Providers.Core
|
||||
|
||||
public virtual void SetValue(string key, object value, string parent = null)
|
||||
{
|
||||
var xDoc = XDocument.Load(ConfigFile);
|
||||
var xDoc = XDocument.Load(_configFile);
|
||||
var config = xDoc.Descendants("Config").Single();
|
||||
|
||||
var parentContainer = config;
|
||||
@@ -105,18 +106,18 @@ namespace NzbDrone.Core.Providers.Core
|
||||
else
|
||||
parentContainer.Descendants(key).Single().Value = value.ToString();
|
||||
|
||||
xDoc.Save(ConfigFile);
|
||||
xDoc.Save(_configFile);
|
||||
}
|
||||
|
||||
public virtual void CreateDefaultConfigFile()
|
||||
{
|
||||
if (!File.Exists(ConfigFile))
|
||||
if (!File.Exists(_configFile))
|
||||
{
|
||||
var xDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes"));
|
||||
|
||||
xDoc.Add(new XElement("Config"));
|
||||
|
||||
xDoc.Save(ConfigFile);
|
||||
xDoc.Save(_configFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -18,18 +18,20 @@ namespace NzbDrone.Core.Providers.Jobs
|
||||
private readonly HttpProvider _httpProvider;
|
||||
private readonly DiskProvider _diskProvider;
|
||||
private readonly EnviromentProvider _enviromentProvider;
|
||||
private readonly PathProvider _pathProvider;
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private string _bannerPath = "";
|
||||
private const string _bannerUrlPrefix = "http://www.thetvdb.com/banners/";
|
||||
|
||||
[Inject]
|
||||
public BannerDownloadJob(SeriesProvider seriesProvider, HttpProvider httpProvider, DiskProvider diskProvider, EnviromentProvider enviromentProvider)
|
||||
public BannerDownloadJob(SeriesProvider seriesProvider, HttpProvider httpProvider, DiskProvider diskProvider,
|
||||
EnviromentProvider enviromentProvider, PathProvider pathProvider)
|
||||
{
|
||||
_seriesProvider = seriesProvider;
|
||||
_httpProvider = httpProvider;
|
||||
_diskProvider = diskProvider;
|
||||
_enviromentProvider = enviromentProvider;
|
||||
_pathProvider = pathProvider;
|
||||
}
|
||||
|
||||
public BannerDownloadJob()
|
||||
@@ -51,8 +53,8 @@ namespace NzbDrone.Core.Providers.Jobs
|
||||
{
|
||||
Logger.Debug("Starting banner download job");
|
||||
|
||||
_bannerPath = Path.Combine(_enviromentProvider.WebRoot, "Content", "Images", "Banners");
|
||||
_diskProvider.CreateDirectory(_bannerPath);
|
||||
|
||||
_diskProvider.CreateDirectory(_pathProvider.BannerPath);
|
||||
|
||||
if (targetId > 0)
|
||||
{
|
||||
@@ -76,7 +78,7 @@ namespace NzbDrone.Core.Providers.Jobs
|
||||
|
||||
public virtual void DownloadBanner(ProgressNotification notification, Series series)
|
||||
{
|
||||
var bannerFilename = String.Format("{0}{1}{2}.jpg", _bannerPath, Path.DirectorySeparatorChar, series.SeriesId);
|
||||
var bannerFilename = Path.Combine(_pathProvider.BannerPath, series.SeriesId.ToString(), ".jpg");
|
||||
|
||||
notification.CurrentMessage = string.Format("Downloading banner for '{0}'", series.Title);
|
||||
|
||||
|
@@ -13,22 +13,20 @@ namespace NzbDrone.Core.Providers
|
||||
{
|
||||
public class TvDbProvider
|
||||
{
|
||||
private readonly EnviromentProvider _enviromentProvider;
|
||||
private const string TVDB_APIKEY = "5D2D188E86E07F4F";
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private readonly TvdbHandler _handler;
|
||||
|
||||
[Inject]
|
||||
public TvDbProvider(EnviromentProvider enviromentProvider)
|
||||
public TvDbProvider(PathProvider pathProvider)
|
||||
{
|
||||
_enviromentProvider = enviromentProvider;
|
||||
_handler = new TvdbHandler(new XmlCacheProvider(_enviromentProvider.AppDataPath + @"\cache\tvdb"), TVDB_APIKEY);
|
||||
_handler = new TvdbHandler(new XmlCacheProvider(pathProvider.CacheFolder), TVDB_APIKEY);
|
||||
}
|
||||
|
||||
public TvDbProvider()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
public virtual IList<TvdbSearchResult> SearchSeries(string title)
|
||||
|
@@ -18,19 +18,22 @@ namespace NzbDrone.Core.Providers
|
||||
private readonly HttpProvider _httpProvider;
|
||||
private readonly ConfigProvider _configProvider;
|
||||
private readonly EnviromentProvider _enviromentProvider;
|
||||
private readonly PathProvider _pathProvider;
|
||||
private readonly DiskProvider _diskProvider;
|
||||
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private static readonly Regex ParseRegex = new Regex(@"(?:\>)(?<filename>NzbDrone.+?(?<version>\d+\.\d+\.\d+\.\d+).+?)(?:\<\/A\>)", RegexOptions.IgnoreCase);
|
||||
|
||||
public const string SandboxFolderName = "nzbdrone_update";
|
||||
|
||||
|
||||
[Inject]
|
||||
public UpdateProvider(HttpProvider httpProvider, ConfigProvider configProvider, EnviromentProvider enviromentProvider, DiskProvider diskProvider)
|
||||
public UpdateProvider(HttpProvider httpProvider, ConfigProvider configProvider, EnviromentProvider enviromentProvider,
|
||||
PathProvider pathProvider, DiskProvider diskProvider)
|
||||
{
|
||||
_httpProvider = httpProvider;
|
||||
_configProvider = configProvider;
|
||||
_enviromentProvider = enviromentProvider;
|
||||
_pathProvider = pathProvider;
|
||||
_diskProvider = diskProvider;
|
||||
}
|
||||
|
||||
@@ -73,15 +76,14 @@ namespace NzbDrone.Core.Providers
|
||||
|
||||
public virtual void PreformUpdate(UpdatePackage updatePackage)
|
||||
{
|
||||
var tempSubFolder = Path.Combine(_enviromentProvider.TempPath, SandboxFolderName);
|
||||
var packageDestination = Path.Combine(tempSubFolder, updatePackage.FileName);
|
||||
var packageDestination = Path.Combine(_pathProvider.UpdateSandboxFolder, updatePackage.FileName);
|
||||
|
||||
Logger.Info("Downloading update package from [{0}] to [{1}]", updatePackage.Url, packageDestination);
|
||||
_httpProvider.DownloadFile(updatePackage.Url, packageDestination);
|
||||
Logger.Info("Download completed for update package from [{0}]", updatePackage.FileName);
|
||||
|
||||
Logger.Info("Extracting Update package");
|
||||
_diskProvider.ExtractArchive(packageDestination, tempSubFolder);
|
||||
_diskProvider.ExtractArchive(packageDestination, _pathProvider.UpdateSandboxFolder);
|
||||
Logger.Info("Update package extracted successfully");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user