diff --git a/src/NzbDrone.Core/MediaFiles/RenameMovieFileService.cs b/src/NzbDrone.Core/MediaFiles/RenameMovieFileService.cs index fca3412f9e..773d6e484b 100644 --- a/src/NzbDrone.Core/MediaFiles/RenameMovieFileService.cs +++ b/src/NzbDrone.Core/MediaFiles/RenameMovieFileService.cs @@ -17,7 +17,7 @@ namespace NzbDrone.Core.MediaFiles { public interface IRenameMovieFileService { - List GetRenamePreviews(int movieId); + List GetRenamePreviews(List movieIds); } public class RenameMovieFileService : IRenameMovieFileService, @@ -49,12 +49,18 @@ public RenameMovieFileService(IMovieService movieService, _logger = logger; } - public List GetRenamePreviews(int movieId) + public List GetRenamePreviews(List movieIds) { - var movie = _movieService.GetMovie(movieId); - var file = _mediaFileService.GetFilesByMovie(movieId); + var movies = _movieService.GetMovies(movieIds); + var movieFiles = _mediaFileService.GetFilesByMovies(movieIds).ToLookup(f => f.MovieId); - return GetPreviews(movie, file).OrderByDescending(m => m.MovieId).ToList(); // TODO: Would really like to not have these be lists + return movies.SelectMany(movie => + { + var files = movieFiles[movie.Id].ToList(); + + return GetPreviews(movie, files); + }) + .ToList(); } private IEnumerable GetPreviews(Movie movie, List files) diff --git a/src/Radarr.Api.V3/Movies/RenameMovieController.cs b/src/Radarr.Api.V3/Movies/RenameMovieController.cs index 87e65e1e93..91754c919d 100644 --- a/src/Radarr.Api.V3/Movies/RenameMovieController.cs +++ b/src/Radarr.Api.V3/Movies/RenameMovieController.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Mvc; using NzbDrone.Core.MediaFiles; using Radarr.Http; +using Radarr.Http.REST; namespace Radarr.Api.V3.Movies { @@ -16,9 +17,14 @@ public RenameMovieController(IRenameMovieFileService renameMovieFileService) } [HttpGet] - public List GetMovies(int movieId) + public List GetMovies([FromQuery(Name = "movieId")] List movieIds) { - return _renameMovieFileService.GetRenamePreviews(movieId).ToResource(); + if (movieIds is not { Count: not 0 }) + { + throw new BadRequestException("movieId must be provided"); + } + + return _renameMovieFileService.GetRenamePreviews(movieIds).ToResource(); } } }