From 208feb7d19fa32b703573b96f3d535484f73142f Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 20 Jun 2011 16:46:54 -0700 Subject: [PATCH] CleanFileName when getting new filename from MediaFileProvider. --- NzbDrone.Core.Test/MediaFileProviderTests.cs | 10 ++++++++++ NzbDrone.Core/Helpers/EpisodeRenameHelper.cs | 12 ------------ NzbDrone.Core/Providers/MediaFileProvider.cs | 12 ++++++++++++ NzbDrone.Web/Controllers/AddSeriesController.cs | 2 +- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/NzbDrone.Core.Test/MediaFileProviderTests.cs b/NzbDrone.Core.Test/MediaFileProviderTests.cs index 8f6ad61c1..cc0c63562 100644 --- a/NzbDrone.Core.Test/MediaFileProviderTests.cs +++ b/NzbDrone.Core.Test/MediaFileProviderTests.cs @@ -349,5 +349,15 @@ namespace NzbDrone.Core.Test } + [Test] + [TestCase("Law & Order: Criminal Intent - S10E07 - Icarus [HDTV]", "Law & Order- Criminal Intent - S10E07 - Icarus [HDTV]")] + public void CleanFileName(string name, string expectedName) + { + //Act + var result = MediaFileProvider.CleanFilename(name); + + //Assert + Assert.AreEqual(expectedName, result); + } } } \ No newline at end of file diff --git a/NzbDrone.Core/Helpers/EpisodeRenameHelper.cs b/NzbDrone.Core/Helpers/EpisodeRenameHelper.cs index d02781b55..f401c221a 100644 --- a/NzbDrone.Core/Helpers/EpisodeRenameHelper.cs +++ b/NzbDrone.Core/Helpers/EpisodeRenameHelper.cs @@ -55,17 +55,5 @@ namespace NzbDrone.Core.Helpers return String.Format("{0} - S{1:00}E{2} - {3}", erm.SeriesName, erm.EpisodeFile.Episodes[0].SeasonNumber, epNumberString, epNameString); } - - public static string CleanFilename(string name) - { - string result = name; - string[] badCharacters = {"\\", "/", "<", ">", "?", "*", ":", "|", "\""}; - string[] goodCharacters = {"+", "+", "{", "}", "!", "@", "-", "#", "`"}; - - for (int i = 0; i < badCharacters.Length; i++) - result = result.Replace(badCharacters[i], goodCharacters[i]); - - return result.Trim(); - } } } \ No newline at end of file diff --git a/NzbDrone.Core/Providers/MediaFileProvider.cs b/NzbDrone.Core/Providers/MediaFileProvider.cs index 732d3a18d..d1dc1586a 100644 --- a/NzbDrone.Core/Providers/MediaFileProvider.cs +++ b/NzbDrone.Core/Providers/MediaFileProvider.cs @@ -129,6 +129,18 @@ namespace NzbDrone.Core.Providers result = result.Replace(' ', '.'); Logger.Debug("New File Name is: {0}", result.Trim()); + return CleanFilename(result.Trim()); + } + + public static string CleanFilename(string name) + { + string result = name; + string[] badCharacters = { "\\", "/", "<", ">", "?", "*", ":", "|", "\"" }; + string[] goodCharacters = { "+", "+", "{", "}", "!", "@", "-", "#", "`" }; + + for (int i = 0; i < badCharacters.Length; i++) + result = result.Replace(badCharacters[i], goodCharacters[i]); + return result.Trim(); } } diff --git a/NzbDrone.Web/Controllers/AddSeriesController.cs b/NzbDrone.Web/Controllers/AddSeriesController.cs index 6431d35da..8dd5eb4fe 100644 --- a/NzbDrone.Web/Controllers/AddSeriesController.cs +++ b/NzbDrone.Web/Controllers/AddSeriesController.cs @@ -129,7 +129,7 @@ namespace NzbDrone.Web.Controllers var path = rootPath.Replace('|', Path.DirectorySeparatorChar).Replace('^', Path.VolumeSeparatorChar).Replace( '`', '\'') + - Path.DirectorySeparatorChar + EpisodeRenameHelper.CleanFilename(seriesName); + Path.DirectorySeparatorChar + MediaFileProvider.CleanFilename(seriesName); //Create the folder for the new series and then Add it _diskProvider.CreateDirectory(path);