mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-14 11:23:42 +02:00
Fixed: Importing of completed download when not a child of the download client output path
This commit is contained in:
parent
900dfd92d0
commit
a1f02916d4
@ -349,5 +349,21 @@ public void should_get_relative_path_when_there_is_no_grandparent_for_UNC_path()
|
|||||||
|
|
||||||
Mocker.GetMock<IMediaFileService>().Verify(v => v.Add(It.Is<EpisodeFile>(c => c.OriginalFilePath == $"{name}.mkv")));
|
Mocker.GetMock<IMediaFileService>().Verify(v => v.Add(It.Is<EpisodeFile>(c => c.OriginalFilePath == $"{name}.mkv")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_use_folder_info_release_title_to_find_relative_path_when_file_is_not_in_download_client_item_output_directory()
|
||||||
|
{
|
||||||
|
var name = "Series.Title.S01E01.720p.HDTV.x264-Sonarr";
|
||||||
|
var outputPath = Path.Combine(@"C:\Test\Unsorted\TV\".AsOsAgnostic(), name);
|
||||||
|
var localEpisode = _approvedDecisions.First().LocalEpisode;
|
||||||
|
|
||||||
|
_downloadClientItem.OutputPath = new OsPath(Path.Combine(@"C:\Test\Unsorted\TV-Other\".AsOsAgnostic(), name));
|
||||||
|
localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo { ReleaseTitle = name };
|
||||||
|
localEpisode.Path = Path.Combine(outputPath, "subfolder", name + ".mkv");
|
||||||
|
|
||||||
|
Subject.Import(new List<ImportDecision> { _approvedDecisions.First() }, true, _downloadClientItem);
|
||||||
|
|
||||||
|
Mocker.GetMock<IMediaFileService>().Verify(v => v.Add(It.Is<EpisodeFile>(c => c.OriginalFilePath == $"{name}\\subfolder\\{name}.mkv".AsOsAgnostic())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -151,12 +151,18 @@ public List<ImportResult> Import(List<ImportDecision> decisions, bool newDownloa
|
|||||||
|
|
||||||
private string GetOriginalFilePath(DownloadClientItem downloadClientItem, LocalEpisode localEpisode)
|
private string GetOriginalFilePath(DownloadClientItem downloadClientItem, LocalEpisode localEpisode)
|
||||||
{
|
{
|
||||||
|
var path = localEpisode.Path;
|
||||||
|
|
||||||
if (downloadClientItem != null)
|
if (downloadClientItem != null)
|
||||||
{
|
{
|
||||||
return downloadClientItem.OutputPath.Directory.ToString().GetRelativePath(localEpisode.Path);
|
var outputDirectory = downloadClientItem.OutputPath.Directory.ToString();
|
||||||
|
|
||||||
|
if (outputDirectory.IsParentPath(path))
|
||||||
|
{
|
||||||
|
return outputDirectory.GetRelativePath(path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var path = localEpisode.Path;
|
|
||||||
var folderEpisodeInfo = localEpisode.FolderEpisodeInfo;
|
var folderEpisodeInfo = localEpisode.FolderEpisodeInfo;
|
||||||
|
|
||||||
if (folderEpisodeInfo != null)
|
if (folderEpisodeInfo != null)
|
||||||
|
Loading…
Reference in New Issue
Block a user