From a33b861cec2297011ff848308613f295b1943ab3 Mon Sep 17 00:00:00 2001 From: Robin Dadswell <19610103+RobinDadswell@users.noreply.github.com> Date: Fri, 7 Jan 2022 04:04:10 +0000 Subject: [PATCH] Fixed: Download Client not sending on Import or Upgrade notifications (#6908) * Fixed: Download client and ID for custom scripts Based on Sonarr Commit eea34198495ca03b3765334a28481eb56f1b20db * fixup! test Co-authored-by: Qstick --- .../Checks/RemotePathMappingCheckFixture.cs | 2 +- .../HistoryTests/HistoryServiceFixture.cs | 2 +- .../MediaFiles/Events/MovieDownloadedEvent.cs | 26 ----------------- .../MediaFiles/Events/MovieImportedEvent.cs | 19 ++++++------- .../MovieImport/ImportApprovedMovie.cs | 14 +--------- .../Notifications/NotificationService.cs | 28 ++++++++++++------- 6 files changed, 30 insertions(+), 61 deletions(-) delete mode 100644 src/NzbDrone.Core/MediaFiles/Events/MovieDownloadedEvent.cs diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/RemotePathMappingCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/RemotePathMappingCheckFixture.cs index f9baa7a75..71b2b0ef4 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/RemotePathMappingCheckFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/RemotePathMappingCheckFixture.cs @@ -176,7 +176,7 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks public void should_return_ok_on_movie_imported_event() { GivenFolderExists(_downloadRootPath); - var importEvent = new MovieImportedEvent(new LocalMovie(), new MovieFile(), true, new DownloadClientItem(), _downloadItem.DownloadId); + var importEvent = new MovieImportedEvent(new LocalMovie(), new MovieFile(), new List(), true, new DownloadClientItem()); Subject.Check(importEvent).ShouldBeOk(); } diff --git a/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs b/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs index b866b6890..a74ff9890 100644 --- a/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs +++ b/src/NzbDrone.Core.Test/HistoryTests/HistoryServiceFixture.cs @@ -91,7 +91,7 @@ namespace NzbDrone.Core.Test.HistoryTests DownloadId = "abcd" }; - Subject.Handle(new MovieImportedEvent(localMovie, movieFile, true, downloadClientItem, "abcd")); + Subject.Handle(new MovieImportedEvent(localMovie, movieFile, new List(), true, downloadClientItem)); Mocker.GetMock() .Verify(v => v.Insert(It.Is(h => h.SourceTitle == Path.GetFileNameWithoutExtension(localMovie.Path)))); diff --git a/src/NzbDrone.Core/MediaFiles/Events/MovieDownloadedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/MovieDownloadedEvent.cs deleted file mode 100644 index d8ec20ddd..000000000 --- a/src/NzbDrone.Core/MediaFiles/Events/MovieDownloadedEvent.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; -using NzbDrone.Common.Messaging; -using NzbDrone.Core.Download; -using NzbDrone.Core.Parser.Model; - -namespace NzbDrone.Core.MediaFiles.Events -{ - public class MovieDownloadedEvent : IEvent - { - public LocalMovie Movie { get; private set; } - public MovieFile MovieFile { get; private set; } - public List OldFiles { get; private set; } - public string DownloadId { get; private set; } - - public MovieDownloadedEvent(LocalMovie movie, MovieFile movieFile, List oldFiles, DownloadClientItem downloadClientItem) - { - Movie = movie; - MovieFile = movieFile; - OldFiles = oldFiles; - if (downloadClientItem != null) - { - DownloadId = downloadClientItem.DownloadId; - } - } - } -} diff --git a/src/NzbDrone.Core/MediaFiles/Events/MovieImportedEvent.cs b/src/NzbDrone.Core/MediaFiles/Events/MovieImportedEvent.cs index 35ca83f8e..6efd0c7c4 100644 --- a/src/NzbDrone.Core/MediaFiles/Events/MovieImportedEvent.cs +++ b/src/NzbDrone.Core/MediaFiles/Events/MovieImportedEvent.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using NzbDrone.Common.Messaging; using NzbDrone.Core.Download; using NzbDrone.Core.Parser.Model; @@ -8,24 +9,22 @@ namespace NzbDrone.Core.MediaFiles.Events { public LocalMovie MovieInfo { get; private set; } public MovieFile ImportedMovie { get; private set; } + public List OldFiles { get; private set; } public bool NewDownload { get; private set; } public DownloadClientItemClientInfo DownloadClientInfo { get; set; } public string DownloadId { get; private set; } - public MovieImportedEvent(LocalMovie movieInfo, MovieFile importedMovie, bool newDownload) + public MovieImportedEvent(LocalMovie movieInfo, MovieFile importedMovie, List oldFiles, bool newDownload, DownloadClientItem downloadClientItem) { MovieInfo = movieInfo; ImportedMovie = importedMovie; + OldFiles = oldFiles; NewDownload = newDownload; - } - - public MovieImportedEvent(LocalMovie movieInfo, MovieFile importedMovie, bool newDownload, DownloadClientItem downloadClientItem, string downloadId) - { - MovieInfo = movieInfo; - ImportedMovie = importedMovie; - NewDownload = newDownload; - DownloadClientInfo = downloadClientItem.DownloadClientInfo; - DownloadId = downloadId; + if (downloadClientItem != null) + { + DownloadClientInfo = downloadClientItem.DownloadClientInfo; + DownloadId = downloadClientItem.DownloadId; + } } } } diff --git a/src/NzbDrone.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs b/src/NzbDrone.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs index 9548c5341..a7b280c4a 100644 --- a/src/NzbDrone.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs +++ b/src/NzbDrone.Core/MediaFiles/MovieImport/ImportApprovedMovie.cs @@ -144,19 +144,7 @@ namespace NzbDrone.Core.MediaFiles.MovieImport _extraService.ImportMovie(localMovie, movieFile, copyOnly); } - if (downloadClientItem != null) - { - _eventAggregator.PublishEvent(new MovieImportedEvent(localMovie, movieFile, newDownload, downloadClientItem, downloadClientItem.DownloadId)); - } - else - { - _eventAggregator.PublishEvent(new MovieImportedEvent(localMovie, movieFile, newDownload)); - } - - if (newDownload) - { - _eventAggregator.PublishEvent(new MovieDownloadedEvent(localMovie, movieFile, oldFiles, downloadClientItem)); - } + _eventAggregator.PublishEvent(new MovieImportedEvent(localMovie, movieFile, oldFiles, newDownload, downloadClientItem)); } catch (RootFolderNotFoundException e) { diff --git a/src/NzbDrone.Core/Notifications/NotificationService.cs b/src/NzbDrone.Core/Notifications/NotificationService.cs index ccc2d6d0a..582436214 100644 --- a/src/NzbDrone.Core/Notifications/NotificationService.cs +++ b/src/NzbDrone.Core/Notifications/NotificationService.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.Notifications public class NotificationService : IHandle, IHandle, - IHandle, + IHandle, IHandle, IHandle, IHandle, @@ -117,21 +117,29 @@ namespace NzbDrone.Core.Notifications } } - public void Handle(MovieDownloadedEvent message) + public void Handle(MovieImportedEvent message) { - var downloadMessage = new DownloadMessage(); - downloadMessage.Message = GetMessage(message.Movie.Movie, message.Movie.Quality); - downloadMessage.MovieFile = message.MovieFile; - downloadMessage.Movie = message.Movie.Movie; - downloadMessage.OldMovieFiles = message.OldFiles; - downloadMessage.SourcePath = message.Movie.Path; - downloadMessage.DownloadId = message.DownloadId; + if (!message.NewDownload) + { + return; + } + + var downloadMessage = new DownloadMessage + { + Message = GetMessage(message.MovieInfo.Movie, message.MovieInfo.Quality), + MovieFile = message.ImportedMovie, + Movie = message.MovieInfo.Movie, + OldMovieFiles = message.OldFiles, + SourcePath = message.MovieInfo.Path, + DownloadClient = message.DownloadClientInfo?.Name, + DownloadId = message.DownloadId + }; foreach (var notification in _notificationFactory.OnDownloadEnabled()) { try { - if (ShouldHandleMovie(notification.Definition, message.Movie.Movie)) + if (ShouldHandleMovie(notification.Definition, message.MovieInfo.Movie)) { if (downloadMessage.OldMovieFiles.Empty() || ((NotificationDefinition)notification.Definition).OnUpgrade) {