From 6ef3a0a6d40fcf226eae2ec96e0b6592e54f75d8 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 30 Jul 2024 21:26:24 -0700 Subject: [PATCH] New: Return downloading magnets from Transmission (cherry picked from commit 11a9dcb3890eaf99602900f37e64007f2fbf9b8e) --- .../TransmissionTests/TransmissionFixture.cs | 7 +++++-- .../DownloadClientTests/VuzeTests/VuzeFixture.cs | 5 ++++- .../Download/Clients/Transmission/TransmissionBase.cs | 10 ++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs index f9ae85b30..47e916a32 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/TransmissionTests/TransmissionFixture.cs @@ -49,10 +49,13 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.TransmissionTests } [Test] - public void magnet_download_should_not_return_the_item() + public void magnet_download_should_be_returned_as_queued() { PrepareClientToReturnMagnetItem(); - Subject.GetItems().Count().Should().Be(0); + + var item = Subject.GetItems().Single(); + + item.Status.Should().Be(DownloadItemStatus.Queued); } [Test] diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs index 8d9556b30..a0d1a1ad6 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/VuzeTests/VuzeFixture.cs @@ -60,7 +60,10 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.VuzeTests public void magnet_download_should_not_return_the_item() { PrepareClientToReturnMagnetItem(); - Subject.GetItems().Count().Should().Be(0); + + var item = Subject.GetItems().Single(); + + item.Status.Should().Be(DownloadItemStatus.Queued); } [Test] diff --git a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs index 465df1ee8..9a9c95e6f 100644 --- a/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs +++ b/src/NzbDrone.Core/Download/Clients/Transmission/TransmissionBase.cs @@ -41,12 +41,6 @@ namespace NzbDrone.Core.Download.Clients.Transmission foreach (var torrent in torrents) { - // If totalsize == 0 the torrent is a magnet downloading metadata - if (torrent.TotalSize == 0) - { - continue; - } - var outputPath = new OsPath(torrent.DownloadDir); if (Settings.MusicDirectory.IsNotNullOrWhiteSpace()) @@ -97,6 +91,10 @@ namespace NzbDrone.Core.Download.Clients.Transmission item.Status = DownloadItemStatus.Warning; item.Message = torrent.ErrorString; } + else if (torrent.TotalSize == 0) + { + item.Status = DownloadItemStatus.Queued; + } else if (torrent.LeftUntilDone == 0 && (torrent.Status == TransmissionTorrentStatus.Stopped || torrent.Status == TransmissionTorrentStatus.Seeding || torrent.Status == TransmissionTorrentStatus.SeedingWait))