From 8623b4410c0b57ef43ab38aac2757760522e3beb Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 17 Oct 2024 04:46:15 +0300 Subject: [PATCH] Inherit trigger from pushed command models (cherry picked from commit 0bc4903954b955fce0c368ef7fd2a6f3761d6a93) Closes #5181 --- src/Lidarr.Api.V1/Artist/ArtistController.cs | 5 ++--- src/Lidarr.Api.V1/Commands/CommandController.cs | 3 +-- .../Messaging/Commands/CommandQueueManager.cs | 7 ++++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Lidarr.Api.V1/Artist/ArtistController.cs b/src/Lidarr.Api.V1/Artist/ArtistController.cs index b31698541..60f7f61fc 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistController.cs @@ -179,9 +179,8 @@ public ActionResult UpdateArtist(ArtistResource artistResource, ArtistId = artist.Id, SourcePath = sourcePath, DestinationPath = destinationPath, - MoveFiles = moveFiles, - Trigger = CommandTrigger.Manual - }); + MoveFiles = moveFiles + }, trigger: CommandTrigger.Manual); var model = artistResource.ToModel(artist); diff --git a/src/Lidarr.Api.V1/Commands/CommandController.cs b/src/Lidarr.Api.V1/Commands/CommandController.cs index 8d5a44389..1f008e5e4 100644 --- a/src/Lidarr.Api.V1/Commands/CommandController.cs +++ b/src/Lidarr.Api.V1/Commands/CommandController.cs @@ -66,9 +66,8 @@ public ActionResult StartCommand(CommandResource commandResourc ? CommandPriority.High : CommandPriority.Normal; - dynamic command = STJson.Deserialize(body, commandType); + var command = STJson.Deserialize(body, commandType) as Command; - command.Trigger = CommandTrigger.Manual; command.SuppressMessages = !command.SendUpdatesToClient; command.SendUpdatesToClient = true; command.ClientUserAgent = Request.Headers["UserAgent"]; diff --git a/src/NzbDrone.Core/Messaging/Commands/CommandQueueManager.cs b/src/NzbDrone.Core/Messaging/Commands/CommandQueueManager.cs index 87b9340dc..559faac5c 100644 --- a/src/NzbDrone.Core/Messaging/Commands/CommandQueueManager.cs +++ b/src/NzbDrone.Core/Messaging/Commands/CommandQueueManager.cs @@ -106,6 +106,8 @@ public CommandModel Push(TCommand command, CommandPriority priority = _logger.Trace("Publishing {0}", command.Name); _logger.Trace("Checking if command is queued or started: {0}", command.Name); + command.Trigger = trigger; + lock (_commandQueue) { var existingCommands = QueuedOrStarted(command.Name); @@ -142,7 +144,6 @@ public CommandModel Push(string commandName, DateTime? lastExecutionTime, DateTi var command = GetCommand(commandName); command.LastExecutionTime = lastExecutionTime; command.LastStartTime = lastStartTime; - command.Trigger = trigger; return Push(command, priority, trigger); } @@ -244,13 +245,13 @@ public void CleanCommands() _repo.Trim(); } - private dynamic GetCommand(string commandName) + private Command GetCommand(string commandName) { commandName = commandName.Split('.').Last(); var commands = _knownTypes.GetImplementations(typeof(Command)); var commandType = commands.Single(c => c.Name.Equals(commandName, StringComparison.InvariantCultureIgnoreCase)); - return Json.Deserialize("{}", commandType); + return Json.Deserialize("{}", commandType) as Command; } private void Update(CommandModel command, CommandStatus status, string message)