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
|
public interface IRenameMovieFileService
|
||||||
{
|
{
|
||||||
List<RenameMovieFilePreview> GetRenamePreviews(int movieId);
|
List<RenameMovieFilePreview> GetRenamePreviews(List<int> movieIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RenameMovieFileService : IRenameMovieFileService,
|
public class RenameMovieFileService : IRenameMovieFileService,
|
||||||
|
|
@ -49,12 +49,18 @@ public RenameMovieFileService(IMovieService movieService,
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<RenameMovieFilePreview> GetRenamePreviews(int movieId)
|
public List<RenameMovieFilePreview> GetRenamePreviews(List<int> movieIds)
|
||||||
{
|
{
|
||||||
var movie = _movieService.GetMovie(movieId);
|
var movies = _movieService.GetMovies(movieIds);
|
||||||
var file = _mediaFileService.GetFilesByMovie(movieId);
|
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)
|
private IEnumerable<RenameMovieFilePreview> GetPreviews(Movie movie, List<MovieFile> files)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using NzbDrone.Core.MediaFiles;
|
using NzbDrone.Core.MediaFiles;
|
||||||
using Radarr.Http;
|
using Radarr.Http;
|
||||||
|
using Radarr.Http.REST;
|
||||||
|
|
||||||
namespace Radarr.Api.V3.Movies
|
namespace Radarr.Api.V3.Movies
|
||||||
{
|
{
|
||||||
|
|
@ -16,9 +17,14 @@ public RenameMovieController(IRenameMovieFileService renameMovieFileService)
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[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