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:
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
{
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user