1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

Fixed: Manual Imports for Unknown Movies

Fixes RADARR-Z
Fixes RADARR-1E
Fixes #4379
This commit is contained in:
Qstick 2020-05-24 22:35:22 -04:00
parent 1d6a7a1843
commit ba6ba06d9b
5 changed files with 18 additions and 9 deletions

View File

@ -138,7 +138,7 @@ public bool VerifyImport(TrackedDownload trackedDownload, List<ImportResult> imp
if (allMoviesImported)
{
trackedDownload.State = TrackedDownloadState.Imported;
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload));
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload, trackedDownload.RemoteMovie.Movie.Id));
return true;
}
@ -156,7 +156,7 @@ public bool VerifyImport(TrackedDownload trackedDownload, List<ImportResult> imp
if (allMoviesImportedInHistory)
{
trackedDownload.State = TrackedDownloadState.Imported;
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload));
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload, trackedDownload.RemoteMovie.Movie.Id));
return true;
}
}

View File

@ -6,10 +6,12 @@ namespace NzbDrone.Core.Download
public class DownloadCompletedEvent : IEvent
{
public TrackedDownload TrackedDownload { get; private set; }
public int MovieId { get; set; }
public DownloadCompletedEvent(TrackedDownload trackedDownload)
public DownloadCompletedEvent(TrackedDownload trackedDownload, int movieId)
{
TrackedDownload = trackedDownload;
MovieId = movieId;
}
}
}

View File

@ -40,7 +40,7 @@ private void RemoveCompletedDownloads()
foreach (var trackedDownload in trackedDownloads)
{
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload));
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload, trackedDownload.RemoteMovie.Movie.Id));
}
}

View File

@ -85,6 +85,12 @@ public DownloadHistory GetLatestDownloadHistoryItem(string downloadId)
public void Handle(MovieGrabbedEvent message)
{
// Don't store grabbed events for clients that don't download IDs
if (message.DownloadId.IsNullOrWhiteSpace())
{
return;
}
var history = new DownloadHistory
{
EventType = DownloadHistoryEventType.DownloadGrabbed,
@ -149,7 +155,7 @@ public void Handle(DownloadCompletedEvent message)
var history = new DownloadHistory
{
EventType = DownloadHistoryEventType.DownloadImported,
MovieId = message.TrackedDownload.RemoteMovie.Movie.Id,
MovieId = message.MovieId,
DownloadId = message.TrackedDownload.DownloadItem.DownloadId,
SourceTitle = message.TrackedDownload.DownloadItem.OutputPath.ToString(),
Date = DateTime.UtcNow,

View File

@ -301,21 +301,22 @@ public void Execute(ManualImportCommand message)
{
var trackedDownload = groupedTrackedDownload.First().TrackedDownload;
var importMovie = groupedTrackedDownload.First().ImportResult.ImportDecision.LocalMovie.Movie;
if (_diskProvider.FolderExists(trackedDownload.DownloadItem.OutputPath.FullPath))
{
if (_downloadedMovieImportService.ShouldDeleteFolder(
new DirectoryInfo(trackedDownload.DownloadItem.OutputPath.FullPath),
trackedDownload.RemoteMovie.Movie) && trackedDownload.DownloadItem.CanMoveFiles)
importMovie) && trackedDownload.DownloadItem.CanMoveFiles)
{
_diskProvider.DeleteFolder(trackedDownload.DownloadItem.OutputPath.FullPath, true);
}
}
//TODO: trackedDownload.RemoteMovie.Movie.Count is always 1?
if (groupedTrackedDownload.Select(c => c.ImportResult).Count(c => c.Result == ImportResultType.Imported) >= Math.Max(1, 1))
if (groupedTrackedDownload.Select(c => c.ImportResult).Count(c => c.Result == ImportResultType.Imported) >= 1)
{
trackedDownload.State = TrackedDownloadState.Imported;
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload));
_eventAggregator.PublishEvent(new DownloadCompletedEvent(trackedDownload, importMovie.Id));
}
}
}