- {title}
+ {title}{disambiguation ? ` (${disambiguation})` : ''}
@@ -444,6 +445,7 @@ AlbumDetails.propTypes = {
id: PropTypes.number.isRequired,
foreignAlbumId: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
+ disambiguation: PropTypes.string,
albumType: PropTypes.string.isRequired,
statistics: PropTypes.object.isRequired,
releaseDate: PropTypes.string.isRequired,
diff --git a/frontend/src/Artist/Details/AlbumRow.js b/frontend/src/Artist/Details/AlbumRow.js
index c230d635a..e2d6cf65e 100644
--- a/frontend/src/Artist/Details/AlbumRow.js
+++ b/frontend/src/Artist/Details/AlbumRow.js
@@ -76,6 +76,7 @@ class AlbumRow extends Component {
secondaryTypes,
title,
ratings,
+ disambiguation,
isSaving,
artistMonitored,
foreignAlbumId,
@@ -124,8 +125,9 @@ class AlbumRow extends Component {
className={styles.title}
>
);
@@ -239,6 +241,7 @@ AlbumRow.propTypes = {
duration: PropTypes.number.isRequired,
title: PropTypes.string.isRequired,
ratings: PropTypes.object.isRequired,
+ disambiguation: PropTypes.string,
secondaryTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
foreignAlbumId: PropTypes.string.isRequired,
isSaving: PropTypes.bool,
diff --git a/frontend/src/Artist/Index/Table/ArtistIndexRow.js b/frontend/src/Artist/Index/Table/ArtistIndexRow.js
index 79d923d5b..c1907693d 100644
--- a/frontend/src/Artist/Index/Table/ArtistIndexRow.js
+++ b/frontend/src/Artist/Index/Table/ArtistIndexRow.js
@@ -187,6 +187,7 @@ class ArtistIndexRow extends Component {
>
@@ -211,6 +212,7 @@ class ArtistIndexRow extends Component {
>
diff --git a/frontend/src/Settings/MediaManagement/Naming/NamingModal.js b/frontend/src/Settings/MediaManagement/Naming/NamingModal.js
index 79a5b0a1e..21dcce3a5 100644
--- a/frontend/src/Settings/MediaManagement/Naming/NamingModal.js
+++ b/frontend/src/Settings/MediaManagement/Naming/NamingModal.js
@@ -134,7 +134,9 @@ class NamingModal extends Component {
{ token: '{Album CleanTitle}', example: 'Album Title' },
- { token: '{Album Type}', example: 'Album Type' }
+ { token: '{Album Type}', example: 'Album Type' },
+
+ { token: '{Album Disambiguation}', example: 'Disambiguation' }
];
const mediumTokens = [
diff --git a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
index 9756da8ac..d29fc6232 100644
--- a/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
+++ b/frontend/src/Wanted/CutoffUnmet/CutoffUnmetRow.js
@@ -21,6 +21,7 @@ function CutoffUnmetRow(props) {
foreignAlbumId,
albumType,
title,
+ disambiguation,
isSelected,
columns,
onSelectedChange
@@ -62,6 +63,7 @@ function CutoffUnmetRow(props) {
);
@@ -140,6 +142,7 @@ CutoffUnmetRow.propTypes = {
foreignAlbumId: PropTypes.string.isRequired,
albumType: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
+ disambiguation: PropTypes.string,
isSelected: PropTypes.bool,
columns: PropTypes.arrayOf(PropTypes.object).isRequired,
onSelectedChange: PropTypes.func.isRequired
diff --git a/frontend/src/Wanted/Missing/MissingRow.js b/frontend/src/Wanted/Missing/MissingRow.js
index 55dd23b99..f54a5c82b 100644
--- a/frontend/src/Wanted/Missing/MissingRow.js
+++ b/frontend/src/Wanted/Missing/MissingRow.js
@@ -20,6 +20,7 @@ function MissingRow(props) {
albumType,
foreignAlbumId,
title,
+ disambiguation,
isSelected,
columns,
onSelectedChange
@@ -55,30 +56,13 @@ function MissingRow(props) {
);
}
- // if (name === 'episode') {
- // return (
- //
- //
- //
- // );
- // }
-
if (name === 'albumTitle') {
return (
);
@@ -101,21 +85,6 @@ function MissingRow(props) {
);
}
- // if (name === 'status') {
- // return (
- //
- //
- //
- // );
- // }
-
if (name === 'actions') {
return (
AlbumLabel { get; set; }
public string ForeignAlbumId { get; set; }
@@ -66,6 +67,7 @@ namespace Lidarr.Api.V1.Albums
ReleaseDate = model.ReleaseDate,
Genres = model.Genres,
Title = model.Title,
+ Disambiguation = model.Disambiguation,
Images = model.Images,
Ratings = model.Ratings,
Duration = model.Duration,
@@ -87,6 +89,7 @@ namespace Lidarr.Api.V1.Albums
Id = resource.Id,
ForeignAlbumId = resource.ForeignAlbumId,
Title = resource.Title,
+ Disambiguation = resource.Disambiguation,
Images = resource.Images,
Monitored = resource.Monitored,
CurrentRelease = resource.CurrentRelease
diff --git a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs
index e4b982f1d..8b2cf3243 100644
--- a/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs
+++ b/src/NzbDrone.Core.Test/OrganizerTests/FileNameBuilderTests/FileNameBuilderFixture.cs
@@ -33,6 +33,8 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests
_album = Builder
.CreateNew()
.With(s => s.Title = "Hybrid Theory")
+ .With(s => s.AlbumType = "Album")
+ .With(s => s.Disambiguation = "The Best Album")
.Build();
@@ -147,6 +149,24 @@ namespace NzbDrone.Core.Test.OrganizerTests.FileNameBuilderTests
.Should().Be("Hybrid Theory");
}
+ [Test]
+ public void should_replace_Album_Type()
+ {
+ _namingConfig.StandardTrackFormat = "{Album Type}";
+
+ Subject.BuildTrackFileName(new List