diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs index d7d0d2d4e..36112e984 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/Manual/ManualImportService.cs @@ -123,10 +123,27 @@ public List GetMediaFiles(string path, string downloadId, Arti AddNewArtists = false }; - var decision = _importDecisionMaker.GetImportDecisions(files, null, null, config); - var result = MapItem(decision.First(), downloadId, replaceExistingFiles, false); + var decisions = _importDecisionMaker.GetImportDecisions(files, null, null, config); - return new List { result }; + if (decisions.Any()) + { + var result = MapItem(decisions.First(), downloadId, replaceExistingFiles, false); + return new List { result }; + } + + return new List + { + new ManualImportItem() + { + Id = HashConverter.GetHashInt31(path), + DownloadId = downloadId, + Path = path, + Name = Path.GetFileNameWithoutExtension(path), + Size = _diskProvider.GetFileSize(path), + Rejections = new List { new Rejection("Unable to process file") }, + ReplaceExistingFiles = replaceExistingFiles + } + }; } return ProcessFolder(path, downloadId, artist, filter, replaceExistingFiles); diff --git a/src/NzbDrone.Core/Music/Services/AddArtistService.cs b/src/NzbDrone.Core/Music/Services/AddArtistService.cs index 872284ca4..90238dce1 100644 --- a/src/NzbDrone.Core/Music/Services/AddArtistService.cs +++ b/src/NzbDrone.Core/Music/Services/AddArtistService.cs @@ -90,6 +90,7 @@ public List AddArtists(List newArtists, bool doRefresh = true, b _logger.Debug("Musicbrainz ID {0} was not added due to validation failure: Artist already exists in database", s.ForeignArtistId); continue; } + if (artistsToAdd.Any(f => f.ForeignArtistId == artist.ForeignArtistId)) { _logger.Debug("Musicbrainz ID {0} was not added due to validation failure: Artist already exists on list", s.ForeignArtistId);