mirror of
https://github.com/Radarr/Radarr
synced 2025-12-06 08:28:50 +01:00
New: Support for multiple movieIds in Rename API endpoint
This commit is contained in:
parent
e6b27512c9
commit
0e2e7e4259
2 changed files with 19 additions and 7 deletions
|
|
@ -17,7 +17,7 @@ namespace NzbDrone.Core.MediaFiles
|
|||
{
|
||||
public interface IRenameMovieFileService
|
||||
{
|
||||
List<RenameMovieFilePreview> GetRenamePreviews(int movieId);
|
||||
List<RenameMovieFilePreview> GetRenamePreviews(List<int> movieIds);
|
||||
}
|
||||
|
||||
public class RenameMovieFileService : IRenameMovieFileService,
|
||||
|
|
@ -49,12 +49,18 @@ public RenameMovieFileService(IMovieService movieService,
|
|||
_logger = logger;
|
||||
}
|
||||
|
||||
public List<RenameMovieFilePreview> GetRenamePreviews(int movieId)
|
||||
public List<RenameMovieFilePreview> GetRenamePreviews(List<int> 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<RenameMovieFilePreview> GetPreviews(Movie movie, List<MovieFile> files)
|
||||
|
|
|
|||
|
|
@ -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<RenameMovieResource> GetMovies(int movieId)
|
||||
public List<RenameMovieResource> GetMovies([FromQuery(Name = "movieId")] List<int> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue