From 0133f4331be6bd161deee4b15e6a7c7aa877fa73 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 3 Dec 2023 21:56:17 +0200 Subject: [PATCH] Fixed: Prevent false notification for moving artist when editing --- src/Lidarr.Api.V1/Artist/ArtistController.cs | 22 ++++++++++--------- .../Artist/ArtistEditorController.cs | 5 ++--- .../Music/Commands/BulkMoveArtistCommand.cs | 1 - .../Music/Commands/MoveArtistCommand.cs | 1 - .../Music/Services/MoveArtistService.cs | 21 ++++++++---------- 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/Lidarr.Api.V1/Artist/ArtistController.cs b/src/Lidarr.Api.V1/Artist/ArtistController.cs index 41bd3f30f..1e23f2713 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistController.cs @@ -167,17 +167,19 @@ namespace Lidarr.Api.V1.Artist { var artist = _artistService.GetArtist(artistResource.Id); - var sourcePath = artist.Path; - var destinationPath = artistResource.Path; - - _commandQueueManager.Push(new MoveArtistCommand + if (moveFiles) { - ArtistId = artist.Id, - SourcePath = sourcePath, - DestinationPath = destinationPath, - MoveFiles = moveFiles, - Trigger = CommandTrigger.Manual - }); + var sourcePath = artist.Path; + var destinationPath = artistResource.Path; + + _commandQueueManager.Push(new MoveArtistCommand + { + ArtistId = artist.Id, + SourcePath = sourcePath, + DestinationPath = destinationPath, + Trigger = CommandTrigger.Manual + }); + } var model = artistResource.ToModel(artist); diff --git a/src/Lidarr.Api.V1/Artist/ArtistEditorController.cs b/src/Lidarr.Api.V1/Artist/ArtistEditorController.cs index efbaa11e9..75b4510dd 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistEditorController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistEditorController.cs @@ -79,13 +79,12 @@ namespace Lidarr.Api.V1.Artist } } - if (artistToMove.Any()) + if (resource.MoveFiles && artistToMove.Any()) { _commandQueueManager.Push(new BulkMoveArtistCommand { DestinationRootFolder = resource.RootFolderPath, - Artist = artistToMove, - MoveFiles = resource.MoveFiles + Artist = artistToMove }); } diff --git a/src/NzbDrone.Core/Music/Commands/BulkMoveArtistCommand.cs b/src/NzbDrone.Core/Music/Commands/BulkMoveArtistCommand.cs index 23e0e11c7..8f035792b 100644 --- a/src/NzbDrone.Core/Music/Commands/BulkMoveArtistCommand.cs +++ b/src/NzbDrone.Core/Music/Commands/BulkMoveArtistCommand.cs @@ -8,7 +8,6 @@ namespace NzbDrone.Core.Music.Commands { public List Artist { get; set; } public string DestinationRootFolder { get; set; } - public bool MoveFiles { get; set; } public override bool SendUpdatesToClient => true; public override bool RequiresDiskAccess => true; diff --git a/src/NzbDrone.Core/Music/Commands/MoveArtistCommand.cs b/src/NzbDrone.Core/Music/Commands/MoveArtistCommand.cs index 1f46f2f6b..c120eddd4 100644 --- a/src/NzbDrone.Core/Music/Commands/MoveArtistCommand.cs +++ b/src/NzbDrone.Core/Music/Commands/MoveArtistCommand.cs @@ -7,7 +7,6 @@ namespace NzbDrone.Core.Music.Commands public int ArtistId { get; set; } public string SourcePath { get; set; } public string DestinationPath { get; set; } - public bool MoveFiles { get; set; } public override bool SendUpdatesToClient => true; public override bool RequiresDiskAccess => true; diff --git a/src/NzbDrone.Core/Music/Services/MoveArtistService.cs b/src/NzbDrone.Core/Music/Services/MoveArtistService.cs index 867084001..7441addce 100644 --- a/src/NzbDrone.Core/Music/Services/MoveArtistService.cs +++ b/src/NzbDrone.Core/Music/Services/MoveArtistService.cs @@ -38,7 +38,7 @@ namespace NzbDrone.Core.Music _logger = logger; } - private void MoveSingleArtist(Artist artist, string sourcePath, string destinationPath, bool moveFiles, int? index = null, int? total = null) + private void MoveSingleArtist(Artist artist, string sourcePath, string destinationPath, int? index = null, int? total = null) { if (!_diskProvider.FolderExists(sourcePath)) { @@ -57,17 +57,14 @@ namespace NzbDrone.Core.Music try { - if (moveFiles) - { - _rootFolderWatchingService.ReportFileSystemChangeBeginning(sourcePath, destinationPath); + _rootFolderWatchingService.ReportFileSystemChangeBeginning(sourcePath, destinationPath); - // Ensure the parent of the artist folder exists, this will often just be the root folder, but - // in cases where people are using subfolders for first letter (etc) it may not yet exist. - _diskProvider.CreateFolder(new DirectoryInfo(destinationPath).Parent.FullName); - _diskTransferService.TransferFolder(sourcePath, destinationPath, TransferMode.Move); + // Ensure the parent of the artist folder exists, this will often just be the root folder, but + // in cases where people are using subfolders for first letter (etc) it may not yet exist. + _diskProvider.CreateFolder(new DirectoryInfo(destinationPath).Parent.FullName); + _diskTransferService.TransferFolder(sourcePath, destinationPath, TransferMode.Move); - _logger.ProgressInfo("{0} moved successfully to {1}", artist.Name, destinationPath); - } + _logger.ProgressInfo("{0} moved successfully to {1}", artist.Name, destinationPath); _eventAggregator.PublishEvent(new ArtistMovedEvent(artist, sourcePath, destinationPath)); } @@ -91,7 +88,7 @@ namespace NzbDrone.Core.Music { var artist = _artistService.GetArtist(message.ArtistId); - MoveSingleArtist(artist, message.SourcePath, message.DestinationPath, message.MoveFiles); + MoveSingleArtist(artist, message.SourcePath, message.DestinationPath); } public void Execute(BulkMoveArtistCommand message) @@ -107,7 +104,7 @@ namespace NzbDrone.Core.Music var artist = _artistService.GetArtist(s.ArtistId); var destinationPath = Path.Combine(destinationRootFolder, _filenameBuilder.GetArtistFolder(artist)); - MoveSingleArtist(artist, s.SourcePath, destinationPath, message.MoveFiles, index, artistToMove.Count); + MoveSingleArtist(artist, s.SourcePath, destinationPath, index, artistToMove.Count); } _logger.ProgressInfo("Finished moving {0} artist to '{1}'", artistToMove.Count, destinationRootFolder);