diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs index 45260547e..9a5760d62 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/SabnzbdFixture.cs @@ -1,6 +1,7 @@ using System; using System.IO; using System.Linq; +using System.Collections.Generic; using FizzWare.NBuilder; using FluentAssertions; using Moq; @@ -12,7 +13,7 @@ using NzbDrone.Core.Download.Clients.Sabnzbd.Responses; using NzbDrone.Core.Parser.Model; using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Tv; -using System.Collections.Generic; +using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests { @@ -254,5 +255,18 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests Mocker.GetMock() .Verify(v => v.DownloadNzb(It.IsAny(), It.IsAny(), It.IsAny(), (int)SabnzbdPriority.High, It.IsAny()), Times.Once()); } + + [Test] + public void should_return_path_to_folder_instead_of_file() + { + _completed.Items.First().Storage = @"C:\sorted\Droned.S01E01.Pilot.1080p.WEB-DL-DRONE\Droned.S01E01_Pilot_1080p_WEB-DL-DRONE.mkv".AsOsAgnostic(); + + WithQueue(null); + WithHistory(_completed); + + var result = Subject.GetItems().Single(); + + result.OutputPath.Should().Be(@"C:\sorted\Droned.S01E01.Pilot.1080p.WEB-DL-DRONE".AsOsAgnostic()); + } } } diff --git a/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs b/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs index d97914a45..86c690dd2 100644 --- a/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs +++ b/src/NzbDrone.Core/Download/Clients/Sabnzbd/Sabnzbd.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Collections.Generic; using System.Linq; using NLog; @@ -142,7 +143,6 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd DownloadTime = TimeSpan.FromSeconds(sabHistoryItem.DownloadTime), RemainingTime = TimeSpan.Zero, - OutputPath = sabHistoryItem.Storage, Message = sabHistoryItem.FailMessage }; @@ -159,6 +159,19 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd historyItem.Status = DownloadItemStatus.Downloading; } + if (!sabHistoryItem.Storage.IsNullOrWhiteSpace()) + { + var parent = Directory.GetParent(sabHistoryItem.Storage); + if (parent.Name == sabHistoryItem.Title) + { + historyItem.OutputPath = parent.FullName; + } + else + { + historyItem.OutputPath = sabHistoryItem.Storage; + } + } + historyItems.Add(historyItem); }