From fa5dda8e2f3fe09ab3180fce6e73ff5a45e42ca9 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 22 Jul 2013 23:46:42 -0700 Subject: [PATCH] Remove _UNPACK_ and _FAILED_ from folder name before processing --- .../DropFolderImportServiceFixture.cs | 20 +++++++++++++++++++ .../DownloadedEpisodesImportService.cs | 13 ++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/NzbDrone.Core.Test/MediaFileTests/DropFolderImportServiceFixture.cs b/NzbDrone.Core.Test/MediaFileTests/DropFolderImportServiceFixture.cs index 27cf613ae..08f64a170 100644 --- a/NzbDrone.Core.Test/MediaFileTests/DropFolderImportServiceFixture.cs +++ b/NzbDrone.Core.Test/MediaFileTests/DropFolderImportServiceFixture.cs @@ -141,6 +141,26 @@ namespace NzbDrone.Core.Test.MediaFileTests .Verify(v => v.DeleteFolder(It.IsAny(), true), Times.Once()); } + [TestCase("_UNPACK_")] + [TestCase("_FAILED_")] + public void should_remove_unpack_from_folder_name(string prefix) + { + var folderName = "30.rock.s01e01.pilot.hdtv-lol"; + var folders = new[] { String.Format(@"C:\Test\Unsorted\{0}{1}", prefix, folderName) }; + + Mocker.GetMock() + .Setup(c => c.GetDirectories(It.IsAny())) + .Returns(folders); + + Subject.Execute(new DownloadedEpisodesScanCommand()); + + Mocker.GetMock() + .Verify(v => v.GetSeries(folderName), Times.Once()); + + Mocker.GetMock() + .Verify(v => v.GetSeries(It.Is(s => s.StartsWith(prefix))), Times.Never()); + } + private void VerifyNoImport() { Mocker.GetMock().Verify(c => c.Import(It.IsAny>(), true), diff --git a/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs b/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs index 939e07ffe..f5bf03915 100644 --- a/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs +++ b/NzbDrone.Core/MediaFiles/DownloadedEpisodesImportService.cs @@ -101,11 +101,12 @@ namespace NzbDrone.Core.MediaFiles private List ProcessSubFolder(DirectoryInfo subfolderInfo) { - var series = _parsingService.GetSeries(subfolderInfo.Name); + var cleanedUpName = GetCleanedUpFolderName(subfolderInfo.Name); + var series = _parsingService.GetSeries(cleanedUpName); if (series == null) { - _logger.Debug("Unknown Series {0}", subfolderInfo.Name); + _logger.Debug("Unknown Series {0}", cleanedUpName); return new List(); } @@ -139,6 +140,14 @@ namespace NzbDrone.Core.MediaFiles return _importApprovedEpisodes.Import(decisions, true); } + private string GetCleanedUpFolderName(string folder) + { + folder = folder.Replace("_UNPACK_", "") + .Replace("_FAILED_", ""); + + return folder; + } + public void Execute(DownloadedEpisodesScanCommand message) { ProcessDownloadedEpisodesFolder();