diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs index 763b948a6..b3ec660a5 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs @@ -36,6 +36,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests [TestCase("The Mist", "M\\The Mist")] [TestCase("A", "A\\A")] [TestCase("30 Rock", "3\\30 Rock")] + [TestCase("The '80s Greatest", "#\\The '80s Greatest")] + public void should_get_expected_folder_name_back(string title, string expected) { _series.Title = title; diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index 5b638cfbd..8088a4c3c 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -377,6 +377,19 @@ namespace NzbDrone.Core.Organizer return title; } + public static string TitleFirstCharacter(string title) + { + title = ScenifyReplaceChars.Replace(title, " "); + title = ScenifyRemoveChars.Replace(title, string.Empty); + + if (char.IsLetterOrDigit(title[0])) + { + return title.Substring(0, 1).FirstCharToUpper(); + } + + return "#"; + } + public static string CleanFileName(string name) { return CleanFileName(name, NamingConfig.Default); @@ -452,7 +465,7 @@ namespace NzbDrone.Core.Organizer tokenHandlers["{Series TitleWithoutYear}"] = m => TitleWithoutYear(series.Title); tokenHandlers["{Series TitleTheYear}"] = m => TitleYear(TitleThe(series.Title), series.Year); tokenHandlers["{Series TitleTheWithoutYear}"] = m => TitleWithoutYear(TitleThe(series.Title)); - tokenHandlers["{Series TitleFirstCharacter}"] = m => TitleThe(series.Title).Substring(0, 1).FirstCharToUpper(); + tokenHandlers["{Series TitleFirstCharacter}"] = m => TitleFirstCharacter(TitleThe(series.Title)); tokenHandlers["{Series Year}"] = m => series.Year.ToString(); }