diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs index a6adbf460..2e7d0513c 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/SeriesTitleFirstCharacterFixture.cs @@ -36,8 +36,11 @@ 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")] + [TestCase("The '80s Greatest", "8\\The '80s Greatest")] [TestCase("좀비버스", "좀\\좀비버스")] + [TestCase("¡Mucha Lucha!", "M\\¡Mucha Lucha!")] + [TestCase(".hack", "H\\hack")] + [TestCase("Ütopya", "Ü\\Ütopya")] public void should_get_expected_folder_name_back(string title, string expected) { diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index 4dd0b129f..bbca149a5 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -381,9 +381,16 @@ namespace NzbDrone.Core.Organizer { if (char.IsLetterOrDigit(title[0])) { - return title.Substring(0, 1).FirstCharToUpper(); + return title.Substring(0, 1).ToUpper(); } + // try the second character if the first was non alphanumeric + if (char.IsLetterOrDigit(title[1])) + { + return title.Substring(1, 1).ToUpper(); + } + + // default to "_" if no alphanumeric character can be found in the first 2 positions return "_"; }