diff --git a/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs index 28d5b5f76..71229cd69 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/DiskScanServiceTests/ScanFixture.cs @@ -66,6 +66,7 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests public void should_not_scan_extras_folder() { GivenParentFolderExists(); + GivenFiles(new List { Path.Combine(_series.Path, "EXTRAS", "file1.mkv").AsOsAgnostic(), @@ -75,9 +76,23 @@ namespace NzbDrone.Core.Test.MediaFiles.DiskScanServiceTests Path.Combine(_series.Path, "Season 1", "s01e01.mkv").AsOsAgnostic() }); -// Mocker.GetMock() -// .Setup(s => s.GetImportDecisions(It.IsAny>(), _series, false, (QualityModel) null)) -// .Returns(new List()); + Subject.Scan(_series); + + Mocker.GetMock() + .Verify(v => v.GetImportDecisions(It.Is>(l => l.Count == 1), _series, false, (QualityModel)null), Times.Once()); + } + + [Test] + public void should_not_scan_AppleDouble_folder() + { + GivenParentFolderExists(); + + GivenFiles(new List + { + Path.Combine(_series.Path, ".AppleDouble", "file1.mkv").AsOsAgnostic(), + Path.Combine(_series.Path, ".appledouble", "file2.mkv").AsOsAgnostic(), + Path.Combine(_series.Path, "Season 1", "s01e01.mkv").AsOsAgnostic() + }); Subject.Scan(_series); diff --git a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs index 032ed8c06..76acda6f9 100644 --- a/src/NzbDrone.Core/MediaFiles/DiskScanService.cs +++ b/src/NzbDrone.Core/MediaFiles/DiskScanService.cs @@ -56,7 +56,7 @@ namespace NzbDrone.Core.MediaFiles _logger = logger; } - private static readonly Regex ExtrasRegex = new Regex(@"(?:\\|\/)extras(?:\\|\/)", RegexOptions.Compiled | RegexOptions.IgnoreCase); + private static readonly Regex ExcludedSubFoldersRegex = new Regex(@"(?:\\|\/)(extras|\.appledouble)(?:\\|\/)", RegexOptions.Compiled | RegexOptions.IgnoreCase); public void Scan(Series series) { @@ -89,7 +89,7 @@ namespace NzbDrone.Core.MediaFiles } var videoFilesStopwatch = Stopwatch.StartNew(); - var mediaFileList = GetVideoFiles(series.Path).Where(file => !ExtrasRegex.IsMatch(file)).ToList(); + var mediaFileList = GetVideoFiles(series.Path).Where(file => !ExcludedSubFoldersRegex.IsMatch(file)).ToList(); videoFilesStopwatch.Stop(); _logger.Trace("Finished getting episode files for: {0} [{1}]", series, videoFilesStopwatch.Elapsed);