From 8df370ffb149a90b8cc2ac45d34121119819cbca Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 27 Dec 2020 20:55:38 -0500 Subject: [PATCH] Fixed: Ensure Definitions folder exists --- .../IndexerDefinitionUpdateService.cs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs index fba40221d..90c5163f9 100644 --- a/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs +++ b/src/NzbDrone.Core/IndexerVersions/IndexerDefinitionUpdateService.cs @@ -4,6 +4,7 @@ using System.Linq; using NLog; using NzbDrone.Common.Cache; +using NzbDrone.Common.Disk; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Extensions; using NzbDrone.Common.Http; @@ -26,6 +27,7 @@ public class IndexerDefinitionUpdateService : IIndexerDefinitionUpdateService, I private readonly IHttpClient _httpClient; private readonly IAppFolderInfo _appFolderInfo; + private readonly IDiskProvider _diskProvider; private readonly ICached _cache; private readonly Logger _logger; @@ -36,10 +38,12 @@ public class IndexerDefinitionUpdateService : IIndexerDefinitionUpdateService, I public IndexerDefinitionUpdateService(IHttpClient httpClient, IAppFolderInfo appFolderInfo, + IDiskProvider diskProvider, ICacheManager cacheManager, Logger logger) { _appFolderInfo = appFolderInfo; + _diskProvider = diskProvider; _cache = cacheManager.GetCache(typeof(CardigannDefinition), "definitions"); _httpClient = httpClient; _logger = logger; @@ -90,6 +94,8 @@ private CardigannDefinition LoadIndexerDef(string fileKey) throw new ArgumentNullException(nameof(fileKey)); } + EnsureDefinitionsFolder(); + var definitionFolder = Path.Combine(_appFolderInfo.StartUpFolder, "Definitions"); var directoryInfo = new DirectoryInfo(definitionFolder); @@ -127,6 +133,13 @@ public void Execute(IndexerDefinitionUpdateCommand message) UpdateLocalDefinitions(); } + private void EnsureDefinitionsFolder() + { + var definitionFolder = Path.Combine(_appFolderInfo.StartUpFolder, "Definitions"); + + _diskProvider.CreateFolder(definitionFolder); + } + private void UpdateLocalDefinitions() { var request = new HttpRequest($"https://indexers.prowlarr.com/master/{DEFINITION_VERSION}"); @@ -138,13 +151,15 @@ private void UpdateLocalDefinitions() { var startupFolder = _appFolderInfo.StartUpFolder; + EnsureDefinitionsFolder(); + var saveFile = Path.Combine(startupFolder, "Definitions", $"{def.File}.yml"); _httpClient.DownloadFile($"https://indexers.prowlarr.com/master/{DEFINITION_VERSION}/{def.File}", saveFile); _cache.Remove(def.File); - _logger.Info("Updated definition: {0}", def.File); + _logger.Debug("Updated definition: {0}", def.File); } catch (Exception ex) {