mirror of
https://github.com/Readarr/Readarr
synced 2026-01-10 17:43:41 +01:00
Fixed: Incorrect imports with Vuze when torrent contains a single file.
fixes #1805
This commit is contained in:
parent
82ee8e6c42
commit
f67d748da1
2 changed files with 35 additions and 3 deletions
|
|
@ -298,7 +298,7 @@ public void should_fail_with_unsupported_protocol_version(string version)
|
|||
}
|
||||
|
||||
[Test]
|
||||
public void should_have_correct_output_directory()
|
||||
public void should_have_correct_output_directory_for_multifile_torrents()
|
||||
{
|
||||
WindowsOnly();
|
||||
|
||||
|
|
@ -315,5 +315,25 @@ public void should_have_correct_output_directory()
|
|||
items.First().OutputPath.Should().Be(@"C:\Downloads\" + _title);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_have_correct_output_directory_for_singlefile_torrents()
|
||||
{
|
||||
WindowsOnly();
|
||||
|
||||
var fileName = _title + ".mkv";
|
||||
_downloading.Name = fileName;
|
||||
_downloading.DownloadDir = @"C:/Downloads";
|
||||
|
||||
GivenTorrents(new List<TransmissionTorrent>
|
||||
{
|
||||
_downloading
|
||||
});
|
||||
|
||||
var items = Subject.GetItems().ToList();
|
||||
|
||||
items.Should().HaveCount(1);
|
||||
items.First().OutputPath.Should().Be(@"C:\Downloads\" + fileName);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,19 @@ public Vuze(ITransmissionProxy proxy,
|
|||
|
||||
protected override OsPath GetOutputPath(OsPath outputPath, TransmissionTorrent torrent)
|
||||
{
|
||||
_logger.Debug("Vuze output directory: {0}", outputPath);
|
||||
// Vuze has similar behavior as uTorrent:
|
||||
// - A multi-file torrent is downloaded in a job folder and 'outputPath' points to that directory directly.
|
||||
// - A single-file torrent is downloaded in the root folder and 'outputPath' poinst to that root folder.
|
||||
// We have to make sure the return value points to the job folder OR file.
|
||||
if (outputPath == null || outputPath.FileName == torrent.Name)
|
||||
{
|
||||
_logger.Trace("Vuze output directory: {0}", outputPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
outputPath = outputPath + torrent.Name;
|
||||
_logger.Trace("Vuze output file: {0}", outputPath);
|
||||
}
|
||||
|
||||
return outputPath;
|
||||
}
|
||||
|
|
@ -50,4 +62,4 @@ protected override ValidationFailure ValidateVersion()
|
|||
|
||||
public override string Name => "Vuze";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue