Fixed: False Positives for RemotePath check with Deluge

pull/1819/head
Qstick 4 years ago
parent bb6cdfef43
commit 44819196bc

@ -6,6 +6,7 @@ using NUnit.Framework;
using NzbDrone.Common.Disk; using NzbDrone.Common.Disk;
using NzbDrone.Common.EnsureThat; using NzbDrone.Common.EnsureThat;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Download; using NzbDrone.Core.Download;
using NzbDrone.Core.Download.Clients; using NzbDrone.Core.Download.Clients;
using NzbDrone.Core.HealthCheck.Checks; using NzbDrone.Core.HealthCheck.Checks;
@ -70,6 +71,10 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
.Setup(s => s.GetDownloadClients()) .Setup(s => s.GetDownloadClients())
.Returns(new IDownloadClient[] { _downloadClient.Object }); .Returns(new IDownloadClient[] { _downloadClient.Object });
Mocker.GetMock<IConfigService>()
.Setup(s => s.EnableCompletedDownloadHandling)
.Returns(true);
Mocker.GetMock<IDiskProvider>() Mocker.GetMock<IDiskProvider>()
.Setup(x => x.FolderExists(It.IsAny<string>())) .Setup(x => x.FolderExists(It.IsAny<string>()))
.Returns((string path) => .Returns((string path) =>

@ -196,13 +196,22 @@ namespace NzbDrone.Core.Download.Clients.Deluge
public override DownloadClientInfo GetStatus() public override DownloadClientInfo GetStatus()
{ {
var config = _proxy.GetConfig(Settings); var config = _proxy.GetConfig(Settings);
var label = _proxy.GetLabelOptions(Settings);
OsPath destDir;
var destDir = new OsPath(config.GetValueOrDefault("download_location") as string); if (label != null && label.ApplyMoveCompleted && label.MoveCompleted)
{
if (config.GetValueOrDefault("move_completed", false).ToString() == "True") // if label exists and a label completed path exists and is enabled use it instead of global
destDir = new OsPath(label.MoveCompletedPath);
}
else if (config.GetValueOrDefault("move_completed", false).ToString() == "True")
{ {
destDir = new OsPath(config.GetValueOrDefault("move_completed_path") as string); destDir = new OsPath(config.GetValueOrDefault("move_completed_path") as string);
} }
else
{
destDir = new OsPath(config.GetValueOrDefault("download_location") as string);
}
var status = new DownloadClientInfo var status = new DownloadClientInfo
{ {

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace NzbDrone.Core.Download.Clients.Deluge
{
public class DelugeLabel
{
[JsonProperty(PropertyName = "apply_move_completed")]
public bool ApplyMoveCompleted { get; set; }
[JsonProperty(PropertyName = "move_completed")]
public bool MoveCompleted { get; set; }
[JsonProperty(PropertyName = "move_completed_path")]
public string MoveCompletedPath { get; set; }
}
}

@ -19,6 +19,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
string[] GetAvailablePlugins(DelugeSettings settings); string[] GetAvailablePlugins(DelugeSettings settings);
string[] GetEnabledPlugins(DelugeSettings settings); string[] GetEnabledPlugins(DelugeSettings settings);
string[] GetAvailableLabels(DelugeSettings settings); string[] GetAvailableLabels(DelugeSettings settings);
DelugeLabel GetLabelOptions(DelugeSettings settings);
void SetTorrentLabel(string hash, string label, DelugeSettings settings); void SetTorrentLabel(string hash, string label, DelugeSettings settings);
void SetTorrentConfiguration(string hash, string key, object value, DelugeSettings settings); void SetTorrentConfiguration(string hash, string key, object value, DelugeSettings settings);
void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, DelugeSettings settings); void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, DelugeSettings settings);
@ -156,6 +157,13 @@ namespace NzbDrone.Core.Download.Clients.Deluge
return response; return response;
} }
public DelugeLabel GetLabelOptions(DelugeSettings settings)
{
var response = ProcessRequest<DelugeLabel>(settings, "label.get_options", settings.MusicCategory);
return response;
}
public void SetTorrentConfiguration(string hash, string key, object value, DelugeSettings settings) public void SetTorrentConfiguration(string hash, string key, object value, DelugeSettings settings)
{ {
var arguments = new Dictionary<string, object>(); var arguments = new Dictionary<string, object>();

@ -5,6 +5,7 @@ using NzbDrone.Common.Disk;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
using NzbDrone.Common.Messaging; using NzbDrone.Common.Messaging;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Datastore.Events;
using NzbDrone.Core.Download; using NzbDrone.Core.Download;
using NzbDrone.Core.Download.Clients; using NzbDrone.Core.Download.Clients;
@ -24,22 +25,31 @@ namespace NzbDrone.Core.HealthCheck.Checks
{ {
private readonly IDiskProvider _diskProvider; private readonly IDiskProvider _diskProvider;
private readonly IProvideDownloadClient _downloadClientProvider; private readonly IProvideDownloadClient _downloadClientProvider;
private readonly IConfigService _configService;
private readonly Logger _logger; private readonly Logger _logger;
private readonly IOsInfo _osInfo; private readonly IOsInfo _osInfo;
public RemotePathMappingCheck(IDiskProvider diskProvider, public RemotePathMappingCheck(IDiskProvider diskProvider,
IProvideDownloadClient downloadClientProvider, IProvideDownloadClient downloadClientProvider,
IConfigService configService,
IOsInfo osInfo, IOsInfo osInfo,
Logger logger) Logger logger)
{ {
_diskProvider = diskProvider; _diskProvider = diskProvider;
_downloadClientProvider = downloadClientProvider; _downloadClientProvider = downloadClientProvider;
_configService = configService;
_logger = logger; _logger = logger;
_osInfo = osInfo; _osInfo = osInfo;
} }
public override HealthCheck Check() public override HealthCheck Check()
{ {
// We don't care about client folders if we are not handling completed files
if (!_configService.EnableCompletedDownloadHandling)
{
return new HealthCheck(GetType());
}
var clients = _downloadClientProvider.GetDownloadClients(); var clients = _downloadClientProvider.GetDownloadClients();
foreach (var client in clients) foreach (var client in clients)
@ -101,6 +111,12 @@ namespace NzbDrone.Core.HealthCheck.Checks
public HealthCheck Check(IEvent message) public HealthCheck Check(IEvent message)
{ {
// We don't care about client folders if we are not handling completed files
if (!_configService.EnableCompletedDownloadHandling)
{
return new HealthCheck(GetType());
}
if (typeof(TrackImportFailedEvent).IsAssignableFrom(message.GetType())) if (typeof(TrackImportFailedEvent).IsAssignableFrom(message.GetType()))
{ {
var failureMessage = (TrackImportFailedEvent)message; var failureMessage = (TrackImportFailedEvent)message;

Loading…
Cancel
Save