New: Return downloading magnets from Transmission

(cherry picked from commit 11a9dcb3890eaf99602900f37e64007f2fbf9b8e)
This commit is contained in:
Mark McDowall 2024-07-30 21:26:24 -07:00 committed by Bogdan
parent c885fe43cd
commit baff805551
3 changed files with 13 additions and 9 deletions

View file

@ -49,10 +49,13 @@ public void completed_download_should_have_required_properties()
}
[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]

View file

@ -60,7 +60,10 @@ public void completed_download_should_have_required_properties()
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]

View file

@ -41,12 +41,6 @@ public override IEnumerable<DownloadClientItem> GetItems()
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.TvDirectory.IsNotNullOrWhiteSpace())
@ -97,6 +91,10 @@ public override IEnumerable<DownloadClientItem> GetItems()
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))