From 8771e715aeea104eca229bdbae345186700c1139 Mon Sep 17 00:00:00 2001 From: ta264 Date: Wed, 11 Mar 2020 21:24:55 +0000 Subject: [PATCH] Fixed: Manual import from artist page forces correct artist --- frontend/src/Artist/Details/ArtistDetails.js | 1 + .../InteractiveImportModalContentConnector.js | 6 ++++++ .../ManualImport/ManualImportModule.cs | 15 ++++++++++++++- .../Identification/IdentificationService.cs | 8 ++++++++ .../TrackImport/Manual/ManualImportService.cs | 10 +++++----- 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/frontend/src/Artist/Details/ArtistDetails.js b/frontend/src/Artist/Details/ArtistDetails.js index d7cb0c7d7..c13aee3d6 100644 --- a/frontend/src/Artist/Details/ArtistDetails.js +++ b/frontend/src/Artist/Details/ArtistDetails.js @@ -657,6 +657,7 @@ class ArtistDetails extends Component { 0) + { + artist = _artistService.GetArtist(Convert.ToInt32(artistIdQuery.Value)); + } + } + var filter = Request.GetBooleanQueryParameter("filterExistingFiles", true) ? FilterFilesType.Matched : FilterFilesType.None; var replaceExistingFiles = Request.GetBooleanQueryParameter("replaceExistingFiles", true); - return _manualImportService.GetMediaFiles(folder, downloadId, filter, replaceExistingFiles).ToResource().Select(AddQualityWeight).ToList(); + return _manualImportService.GetMediaFiles(folder, downloadId, artist, filter, replaceExistingFiles).ToResource().Select(AddQualityWeight).ToList(); } private ManualImportResource AddQualityWeight(ManualImportResource item) diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/IdentificationService.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/IdentificationService.cs index ab98b5cf8..71d9039c8 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/IdentificationService.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Identification/IdentificationService.cs @@ -220,6 +220,14 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Identification if (candidateReleases.Count == 0) { // can't find any candidates even after fingerprinting + // populate the overrides and return + foreach (var localTrack in localAlbumRelease.LocalTracks) + { + localTrack.Release = idOverrides.AlbumRelease; + localTrack.Album = idOverrides.Album; + localTrack.Artist = idOverrides.Artist; + } + return; } diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs index 051c20939..29c3d0057 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs @@ -23,7 +23,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual { public interface IManualImportService { - List GetMediaFiles(string path, string downloadId, FilterFilesType filter, bool replaceExistingFiles); + List GetMediaFiles(string path, string downloadId, Artist artist, FilterFilesType filter, bool replaceExistingFiles); List UpdateItems(List item); } @@ -78,7 +78,7 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual _logger = logger; } - public List GetMediaFiles(string path, string downloadId, FilterFilesType filter, bool replaceExistingFiles) + public List GetMediaFiles(string path, string downloadId, Artist artist, FilterFilesType filter, bool replaceExistingFiles) { if (downloadId.IsNotNullOrWhiteSpace()) { @@ -116,14 +116,14 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Manual return new List { result }; } - return ProcessFolder(path, downloadId, filter, replaceExistingFiles); + return ProcessFolder(path, downloadId, artist, filter, replaceExistingFiles); } - private List ProcessFolder(string folder, string downloadId, FilterFilesType filter, bool replaceExistingFiles) + private List ProcessFolder(string folder, string downloadId, Artist artist, FilterFilesType filter, bool replaceExistingFiles) { DownloadClientItem downloadClientItem = null; var directoryInfo = new DirectoryInfo(folder); - var artist = _parsingService.GetArtist(directoryInfo.Name); + artist = artist ?? _parsingService.GetArtist(directoryInfo.Name); if (downloadId.IsNotNullOrWhiteSpace()) {