mirror of https://github.com/Sonarr/Sonarr
Fixed: Releases without a job folder importing extra files from another release
This commit is contained in:
parent
5df6f13f36
commit
d02d1bbdfe
|
@ -121,7 +121,7 @@ namespace NzbDrone.Core.Test.Extras
|
||||||
WithExistingFile(file);
|
WithExistingFile(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
Mocker.GetMock<IDiskProvider>().Setup(s => s.GetFiles(_episodeFolder, SearchOption.AllDirectories))
|
Mocker.GetMock<IDiskProvider>().Setup(s => s.GetFiles(_episodeFolder, It.IsAny<SearchOption>()))
|
||||||
.Returns(files.ToArray());
|
.Returns(files.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,5 +202,45 @@ namespace NzbDrone.Core.Test.Extras
|
||||||
_subtitleService.Verify(v => v.ImportFiles(_localEpisode, _episodeFile, new List<string> { nfofile }, true), Times.Never());
|
_subtitleService.Verify(v => v.ImportFiles(_localEpisode, _episodeFile, new List<string> { nfofile }, true), Times.Never());
|
||||||
_otherExtraService.Verify(v => v.ImportFiles(_localEpisode, _episodeFile, new List<string> { nfofile }, true), Times.Once());
|
_otherExtraService.Verify(v => v.ImportFiles(_localEpisode, _episodeFile, new List<string> { nfofile }, true), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_search_subtitles_when_importing_from_job_folder()
|
||||||
|
{
|
||||||
|
_localEpisode.FolderEpisodeInfo = new ParsedEpisodeInfo();
|
||||||
|
|
||||||
|
var subtitleFile = Path.Combine(_episodeFolder, "Series.Title.S01E01.en.srt").AsOsAgnostic();
|
||||||
|
|
||||||
|
var files = new List<string> {
|
||||||
|
_localEpisode.Path,
|
||||||
|
subtitleFile
|
||||||
|
};
|
||||||
|
|
||||||
|
WithExistingFiles(files);
|
||||||
|
|
||||||
|
Subject.ImportEpisode(_localEpisode, _episodeFile, true);
|
||||||
|
|
||||||
|
Mocker.GetMock<IDiskProvider>().Verify(v => v.GetFiles(_episodeFolder, SearchOption.AllDirectories), Times.Once);
|
||||||
|
Mocker.GetMock<IDiskProvider>().Verify(v => v.GetFiles(_episodeFolder, SearchOption.TopDirectoryOnly), Times.Never);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void should_not_search_subtitles_when_not_importing_from_job_folder()
|
||||||
|
{
|
||||||
|
_localEpisode.FolderEpisodeInfo = null;
|
||||||
|
|
||||||
|
var subtitleFile = Path.Combine(_episodeFolder, "Series.Title.S01E01.en.srt").AsOsAgnostic();
|
||||||
|
|
||||||
|
var files = new List<string> {
|
||||||
|
_localEpisode.Path,
|
||||||
|
subtitleFile
|
||||||
|
};
|
||||||
|
|
||||||
|
WithExistingFiles(files);
|
||||||
|
|
||||||
|
Subject.ImportEpisode(_localEpisode, _episodeFile, true);
|
||||||
|
|
||||||
|
Mocker.GetMock<IDiskProvider>().Verify(v => v.GetFiles(_episodeFolder, SearchOption.AllDirectories), Times.Never);
|
||||||
|
Mocker.GetMock<IDiskProvider>().Verify(v => v.GetFiles(_episodeFolder, SearchOption.TopDirectoryOnly), Times.Once);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,13 +61,17 @@ namespace NzbDrone.Core.Extras
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var folderSearchOption = localEpisode.FolderEpisodeInfo == null
|
||||||
|
? SearchOption.TopDirectoryOnly
|
||||||
|
: SearchOption.AllDirectories;
|
||||||
|
|
||||||
var wantedExtensions = _configService.ExtraFileExtensions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
var wantedExtensions = _configService.ExtraFileExtensions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
|
||||||
.Select(e => e.Trim(' ', '.')
|
.Select(e => e.Trim(' ', '.')
|
||||||
.Insert(0, "."))
|
.Insert(0, "."))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var sourceFolder = _diskProvider.GetParentFolder(localEpisode.Path);
|
var sourceFolder = _diskProvider.GetParentFolder(localEpisode.Path);
|
||||||
var files = _diskProvider.GetFiles(sourceFolder, SearchOption.AllDirectories);
|
var files = _diskProvider.GetFiles(sourceFolder, folderSearchOption);
|
||||||
var managedFiles = _extraFileManagers.Select((i) => new List<string>()).ToArray();
|
var managedFiles = _extraFileManagers.Select((i) => new List<string>()).ToArray();
|
||||||
|
|
||||||
foreach (var file in files)
|
foreach (var file in files)
|
||||||
|
|
Loading…
Reference in New Issue