diff --git a/frontend/src/Settings/MediaManagement/Naming/NamingModal.js b/frontend/src/Settings/MediaManagement/Naming/NamingModal.js index 102006adf..3438e4603 100644 --- a/frontend/src/Settings/MediaManagement/Naming/NamingModal.js +++ b/frontend/src/Settings/MediaManagement/Naming/NamingModal.js @@ -42,7 +42,9 @@ const artistTokens = [ { token: '{Artist NameThe}', example: 'Artist Name, The' }, - { token: '{Artist CleanName}', example: 'Artist Name' } + { token: '{Artist CleanName}', example: 'Artist Name' }, + + { token: '{Artist Disambiguation}', example: 'Disambiguation' } ]; const albumTokens = [ diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs index 0d760c4ce..ce6246823 100644 --- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs +++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs @@ -29,6 +29,10 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests _artist = Builder .CreateNew() .With(s => s.Name = "Linkin Park") + .With(s => s.Metadata = new ArtistMetadata { + Disambiguation = "US Rock Band", + Name = "Linkin Park" + }) .Build(); _album = Builder @@ -147,6 +151,15 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests .Should().Be("Linkin.Park.1997"); } + [Test] + public void should_replace_Artist_Disambiguation() + { + _namingConfig.StandardTrackFormat = "{Artist Disambiguation}"; + + Subject.BuildTrackFileName(new List { _track1 }, _artist, _album, _trackFile) + .Should().Be("US Rock Band"); + } + [Test] public void should_replace_Album_space_Title() { diff --git a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs index af5d4f748..006cff7ca 100644 --- a/src/NzbDrone.Core/Organizer/FileNameBuilder.cs +++ b/src/NzbDrone.Core/Organizer/FileNameBuilder.cs @@ -265,6 +265,11 @@ namespace NzbDrone.Core.Organizer tokenHandlers["{Artist Name}"] = m => artist.Name; tokenHandlers["{Artist CleanName}"] = m => CleanTitle(artist.Name); tokenHandlers["{Artist NameThe}"] = m => TitleThe(artist.Name); + + if (artist.Metadata.Value.Disambiguation != null) + { + tokenHandlers["{Artist Disambiguation}"] = m => artist.Metadata.Value.Disambiguation; + } } private void AddAlbumTokens(Dictionary> tokenHandlers, Album album) diff --git a/src/NzbDrone.Core/Organizer/FileNameSampleService.cs b/src/NzbDrone.Core/Organizer/FileNameSampleService.cs index d03b2406a..3fa99fbae 100644 --- a/src/NzbDrone.Core/Organizer/FileNameSampleService.cs +++ b/src/NzbDrone.Core/Organizer/FileNameSampleService.cs @@ -33,7 +33,9 @@ namespace NzbDrone.Core.Organizer { Metadata = new ArtistMetadata { - Name = "The Artist Name" + Name = "The Artist Name", + Disambiguation = "US Rock Band" + } };