1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-16 21:15:33 -04:00

New: Reprocess Language in Manual Import after Movie Selection

This commit is contained in:
Qstick
2020-08-19 22:34:26 -04:00
parent 9c85482b9c
commit e4d033d0a7
9 changed files with 149 additions and 15 deletions

View File

@@ -5,11 +5,9 @@ using NLog;
using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions;
using NzbDrone.Common.Instrumentation.Extensions;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Download;
using NzbDrone.Core.Download.TrackedDownloads;
using NzbDrone.Core.History;
using NzbDrone.Core.MediaFiles.MovieImport.Aggregation;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Messaging.Events;
@@ -22,6 +20,7 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Manual
public interface IManualImportService
{
List<ManualImportItem> GetMediaFiles(string path, string downloadId, int? movieId, bool filterExistingFiles);
ManualImportItem ReprocessItem(string path, string downloadId, int movieId);
}
public class ManualImportService : IExecute<ManualImportCommand>, IManualImportService
@@ -36,8 +35,6 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Manual
private readonly ITrackedDownloadService _trackedDownloadService;
private readonly IDownloadedMovieImportService _downloadedMovieImportService;
private readonly IEventAggregator _eventAggregator;
private readonly IConfigService _config;
private readonly IHistoryService _historyService;
private readonly Logger _logger;
public ManualImportService(IDiskProvider diskProvider,
@@ -50,8 +47,6 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Manual
ITrackedDownloadService trackedDownloadService,
IDownloadedMovieImportService downloadedMovieImportService,
IEventAggregator eventAggregator,
IConfigService config,
IHistoryService historyService,
Logger logger)
{
_diskProvider = diskProvider;
@@ -64,8 +59,6 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Manual
_trackedDownloadService = trackedDownloadService;
_downloadedMovieImportService = downloadedMovieImportService;
_eventAggregator = eventAggregator;
_config = config;
_historyService = historyService;
_logger = logger;
}
@@ -97,6 +90,14 @@ namespace NzbDrone.Core.MediaFiles.MovieImport.Manual
return ProcessFolder(path, path, downloadId, movieId, filterExistingFiles);
}
public ManualImportItem ReprocessItem(string path, string downloadId, int movieId)
{
var rootFolder = Path.GetDirectoryName(path);
var movie = _movieService.GetMovie(movieId);
return ProcessFile(rootFolder, rootFolder, path, downloadId, movie);
}
private List<ManualImportItem> ProcessFolder(string rootFolder, string baseFolder, string downloadId, int? movieId, bool filterExistingFiles)
{
DownloadClientItem downloadClientItem = null;

View File

@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.Linq;
using NzbDrone.Core.MediaFiles.MovieImport.Manual;
using NzbDrone.Core.Qualities;
using Radarr.Api.V3.Movies;
using Radarr.Http;
using Radarr.Http.Extensions;
@@ -17,6 +18,7 @@ namespace Radarr.Api.V3.ManualImport
_manualImportService = manualImportService;
GetResourceAll = GetMediaFiles;
Post("/", x => ReprocessItems());
}
private List<ManualImportResource> GetMediaFiles()
@@ -29,6 +31,22 @@ namespace Radarr.Api.V3.ManualImport
return _manualImportService.GetMediaFiles(folder, downloadId, movieId, filterExistingFiles).ToResource().Select(AddQualityWeight).ToList();
}
private object ReprocessItems()
{
var items = Request.Body.FromJson<List<ManualImportReprocessResource>>();
foreach (var item in items)
{
var processedItem = _manualImportService.ReprocessItem(item.Path, item.DownloadId, item.MovieId);
item.Movie = processedItem.Movie.ToResource();
item.Rejections = processedItem.Rejections;
item.Languages = processedItem.Languages;
}
return items;
}
private ManualImportResource AddQualityWeight(ManualImportResource item)
{
if (item.Quality != null)

View File

@@ -0,0 +1,19 @@
using System.Collections.Generic;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Languages;
using Radarr.Api.V3.Movies;
using Radarr.Http.REST;
namespace Radarr.Api.V3.ManualImport
{
public class ManualImportReprocessResource : RestResource
{
public string Path { get; set; }
public int MovieId { get; set; }
public MovieResource Movie { get; set; }
public string DownloadId { get; set; }
public IEnumerable<Rejection> Rejections { get; set; }
public List<Language> Languages { get; set; }
}
}

View File

@@ -7,7 +7,7 @@ using NzbDrone.Core.NetImport.ImportExclusions;
using NzbDrone.Core.Organizer;
using Radarr.Http;
namespace NzbDrone.Api.V3.Movies
namespace Radarr.Api.V3.Movies
{
public class DiscoverMoviesModule : RadarrRestModule<DiscoverMoviesResource>
{

View File

@@ -5,7 +5,7 @@ using NzbDrone.Core.Movies;
using NzbDrone.Core.NetImport.ImportExclusions;
using Radarr.Http.REST;
namespace NzbDrone.Api.V3.Movies
namespace Radarr.Api.V3.Movies
{
public class DiscoverMoviesResource : RestResource
{