1
0
Fork 0
mirror of https://github.com/lidarr/Lidarr synced 2024-12-22 07:42:28 +00:00

Fixed: Status check for completed directories in Deluge

(cherry picked from commit 33139d4b53c1adad769c7e2b0510e8990c66b84a)
This commit is contained in:
Bogdan 2024-10-27 00:22:16 +03:00
parent f7acd57f73
commit 96b51a02e2
2 changed files with 30 additions and 7 deletions

View file

@ -312,11 +312,12 @@ public void GetItems_should_ignore_items_without_hash()
[Test] [Test]
public void should_return_status_with_outputdirs() public void should_return_status_with_outputdirs()
{ {
var configItems = new Dictionary<string, object>(); var configItems = new Dictionary<string, object>
{
configItems.Add("download_location", @"C:\Downloads\Downloading\deluge".AsOsAgnostic()); { "download_location", @"C:\Downloads\Downloading\deluge".AsOsAgnostic() },
configItems.Add("move_completed_path", @"C:\Downloads\Finished\deluge".AsOsAgnostic()); { "move_completed_path", @"C:\Downloads\Finished\deluge".AsOsAgnostic() },
configItems.Add("move_completed", true); { "move_completed", true }
};
Mocker.GetMock<IDelugeProxy>() Mocker.GetMock<IDelugeProxy>()
.Setup(v => v.GetConfig(It.IsAny<DelugeSettings>())) .Setup(v => v.GetConfig(It.IsAny<DelugeSettings>()))
@ -328,5 +329,18 @@ public void should_return_status_with_outputdirs()
result.OutputRootFolders.Should().NotBeNull(); result.OutputRootFolders.Should().NotBeNull();
result.OutputRootFolders.First().Should().Be(@"C:\Downloads\Finished\deluge".AsOsAgnostic()); result.OutputRootFolders.First().Should().Be(@"C:\Downloads\Finished\deluge".AsOsAgnostic());
} }
[Test]
public void should_return_status_with_outputdirs_for_directories_in_settings()
{
Subject.Definition.Settings.As<DelugeSettings>().DownloadDirectory = @"D:\Downloads\Downloading\deluge".AsOsAgnostic();
Subject.Definition.Settings.As<DelugeSettings>().CompletedDirectory = @"D:\Downloads\Finished\deluge".AsOsAgnostic();
var result = Subject.GetStatus();
result.IsLocalhost.Should().BeTrue();
result.OutputRootFolders.Should().NotBeNull();
result.OutputRootFolders.First().Should().Be(@"D:\Downloads\Finished\deluge".AsOsAgnostic());
}
} }
} }

View file

@ -214,9 +214,18 @@ public override DownloadClientInfo GetStatus()
{ {
var config = _proxy.GetConfig(Settings); var config = _proxy.GetConfig(Settings);
var label = _proxy.GetLabelOptions(Settings); var label = _proxy.GetLabelOptions(Settings);
OsPath destDir; OsPath destDir;
if (label != null && label.ApplyMoveCompleted && label.MoveCompleted) if (Settings.CompletedDirectory.IsNotNullOrWhiteSpace())
{
destDir = new OsPath(Settings.CompletedDirectory);
}
else if (Settings.DownloadDirectory.IsNotNullOrWhiteSpace())
{
destDir = new OsPath(Settings.DownloadDirectory);
}
else if (label is { ApplyMoveCompleted: true, MoveCompleted: true })
{ {
// if label exists and a label completed path exists and is enabled use it instead of global // if label exists and a label completed path exists and is enabled use it instead of global
destDir = new OsPath(label.MoveCompletedPath); destDir = new OsPath(label.MoveCompletedPath);
@ -232,7 +241,7 @@ public override DownloadClientInfo GetStatus()
var status = new DownloadClientInfo var status = new DownloadClientInfo
{ {
IsLocalhost = Settings.Host == "127.0.0.1" || Settings.Host == "localhost" IsLocalhost = Settings.Host is "127.0.0.1" or "localhost"
}; };
if (!destDir.IsEmpty) if (!destDir.IsEmpty)