From 8a5c0ffd18574bc30bd45983b956f85b99797bb0 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 6 Jun 2024 12:32:39 +0300 Subject: [PATCH] New: Refresh cache for tracked queue on movie add --- .../TrackedDownloadService.cs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs index 05b3e25c0..7d376cc23 100644 --- a/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs +++ b/src/NzbDrone.Core/Download/TrackedDownloads/TrackedDownloadService.cs @@ -28,6 +28,7 @@ public interface ITrackedDownloadService } public class TrackedDownloadService : ITrackedDownloadService, + IHandle, IHandle { private readonly IParsingService _parsingService; @@ -250,12 +251,29 @@ private void LogItemChange(TrackedDownload trackedDownload, DownloadClientItem e } } + public void Handle(MovieAddedEvent message) + { + var cachedItems = _cache.Values + .Where(t => + t.RemoteMovie?.Movie == null || + message.Movie?.TmdbId == t.RemoteMovie.Movie.TmdbId) + .ToList(); + + if (cachedItems.Any()) + { + cachedItems.ForEach(UpdateCachedItem); + + _eventAggregator.PublishEvent(new TrackedDownloadRefreshedEvent(GetTrackedDownloads())); + } + } + public void Handle(MoviesDeletedEvent message) { - var cachedItems = _cache.Values.Where(t => - t.RemoteMovie?.Movie != null && - message.Movies.Any(m => m.Id == t.RemoteMovie.Movie.Id)) - .ToList(); + var cachedItems = _cache.Values + .Where(t => + t.RemoteMovie?.Movie != null && + message.Movies.Any(m => m.Id == t.RemoteMovie.Movie.Id || m.TmdbId == t.RemoteMovie.Movie.TmdbId)) + .ToList(); if (cachedItems.Any()) {