mirror of
https://github.com/Radarr/Radarr
synced 2025-02-24 07:10:57 +00:00
Fixed: Tweak all movies endpoint for better performance from Radarr lists
This commit is contained in:
parent
248ac9619c
commit
e715557a0d
3 changed files with 33 additions and 31 deletions
|
@ -31,22 +31,26 @@ public RadarrV3Proxy(IHttpClient httpClient, Logger logger)
|
|||
|
||||
public List<RadarrMovie> GetMovies(RadarrSettings settings)
|
||||
{
|
||||
return Execute<RadarrMovie>("/api/v3/movie", settings);
|
||||
var requestBuilder = BuildRequest("/api/v3/movie", settings);
|
||||
|
||||
requestBuilder.AddQueryParam("excludeLocalCovers", true);
|
||||
|
||||
return Execute<RadarrMovie>(requestBuilder, settings);
|
||||
}
|
||||
|
||||
public List<RadarrProfile> GetProfiles(RadarrSettings settings)
|
||||
{
|
||||
return Execute<RadarrProfile>("/api/v3/qualityprofile", settings);
|
||||
return Execute<RadarrProfile>(BuildRequest("/api/v3/qualityprofile", settings), settings);
|
||||
}
|
||||
|
||||
public List<RadarrRootFolder> GetRootFolders(RadarrSettings settings)
|
||||
{
|
||||
return Execute<RadarrRootFolder>("api/v3/rootfolder", settings);
|
||||
return Execute<RadarrRootFolder>(BuildRequest("api/v3/rootfolder", settings), settings);
|
||||
}
|
||||
|
||||
public List<RadarrTag> GetTags(RadarrSettings settings)
|
||||
{
|
||||
return Execute<RadarrTag>("/api/v3/tag", settings);
|
||||
return Execute<RadarrTag>(BuildRequest("/api/v3/tag", settings), settings);
|
||||
}
|
||||
|
||||
public ValidationFailure Test(RadarrSettings settings)
|
||||
|
@ -81,19 +85,23 @@ public ValidationFailure Test(RadarrSettings settings)
|
|||
return null;
|
||||
}
|
||||
|
||||
private List<TResource> Execute<TResource>(string resource, RadarrSettings settings)
|
||||
private HttpRequestBuilder BuildRequest(string resource, RadarrSettings settings)
|
||||
{
|
||||
var baseUrl = settings.BaseUrl.TrimEnd('/');
|
||||
|
||||
return new HttpRequestBuilder(baseUrl).Resource(resource)
|
||||
.Accept(HttpAccept.Json)
|
||||
.SetHeader("X-Api-Key", settings.ApiKey);
|
||||
}
|
||||
|
||||
private List<TResource> Execute<TResource>(HttpRequestBuilder requestBuilder, RadarrSettings settings)
|
||||
{
|
||||
if (settings.BaseUrl.IsNullOrWhiteSpace() || settings.ApiKey.IsNullOrWhiteSpace())
|
||||
{
|
||||
return new List<TResource>();
|
||||
}
|
||||
|
||||
var baseUrl = settings.BaseUrl.TrimEnd('/');
|
||||
|
||||
var request = new HttpRequestBuilder(baseUrl).Resource(resource)
|
||||
.Accept(HttpAccept.Json)
|
||||
.SetHeader("X-Api-Key", settings.ApiKey)
|
||||
.Build();
|
||||
var request = requestBuilder.Build();
|
||||
|
||||
var response = _httpClient.Get(request);
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ public MovieController(IBroadcastSignalRMessage signalRBroadcaster,
|
|||
}
|
||||
|
||||
[HttpGet]
|
||||
public List<MovieResource> AllMovie(int? tmdbId)
|
||||
public List<MovieResource> AllMovie(int? tmdbId, bool excludeLocalCovers = false)
|
||||
{
|
||||
var moviesResources = new List<MovieResource>();
|
||||
|
||||
|
@ -135,7 +135,10 @@ public List<MovieResource> AllMovie(int? tmdbId)
|
|||
|
||||
var tdict = translations.ToDictionary(x => x.MovieMetadataId);
|
||||
|
||||
coverFileInfos = _coverMapper.GetCoverFileInfos();
|
||||
if (!excludeLocalCovers)
|
||||
{
|
||||
coverFileInfos = _coverMapper.GetCoverFileInfos();
|
||||
}
|
||||
|
||||
var movies = movieTask.GetAwaiter().GetResult();
|
||||
|
||||
|
@ -147,7 +150,10 @@ public List<MovieResource> AllMovie(int? tmdbId)
|
|||
moviesResources.Add(movie.ToResource(availDelay, translation, _qualityUpgradableSpecification));
|
||||
}
|
||||
|
||||
MapCoversToLocal(moviesResources, coverFileInfos);
|
||||
if (!excludeLocalCovers)
|
||||
{
|
||||
MapCoversToLocal(moviesResources, coverFileInfos);
|
||||
}
|
||||
|
||||
var rootFolders = _rootFolderService.All();
|
||||
|
||||
|
@ -271,10 +277,7 @@ private void MapCoversToLocal(IEnumerable<MovieResource> movies, Dictionary<stri
|
|||
[NonAction]
|
||||
public void Handle(MovieFileImportedEvent message)
|
||||
{
|
||||
var availDelay = _configService.AvailabilityDelay;
|
||||
var translations = _movieTranslationService.GetAllTranslationsForMovieMetadata(message.ImportedMovie.Movie.MovieMetadataId);
|
||||
var translation = GetMovieTranslation(translations, message.ImportedMovie.Movie.MovieMetadata, (Language)_configService.MovieInfoLanguage);
|
||||
BroadcastResourceChange(ModelAction.Updated, message.ImportedMovie.Movie.ToResource(availDelay, translation, _qualityUpgradableSpecification));
|
||||
BroadcastResourceChange(ModelAction.Updated, MapToResource(message.ImportedMovie.Movie));
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
|
@ -291,19 +294,13 @@ public void Handle(MovieFileDeletedEvent message)
|
|||
[NonAction]
|
||||
public void Handle(MovieUpdatedEvent message)
|
||||
{
|
||||
var availDelay = _configService.AvailabilityDelay;
|
||||
var translations = _movieTranslationService.GetAllTranslationsForMovieMetadata(message.Movie.MovieMetadataId);
|
||||
var translation = GetMovieTranslation(translations, message.Movie.MovieMetadata, (Language)_configService.MovieInfoLanguage);
|
||||
BroadcastResourceChange(ModelAction.Updated, message.Movie.ToResource(availDelay, translation, _qualityUpgradableSpecification));
|
||||
BroadcastResourceChange(ModelAction.Updated, MapToResource(message.Movie));
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public void Handle(MovieEditedEvent message)
|
||||
{
|
||||
var availDelay = _configService.AvailabilityDelay;
|
||||
var translations = _movieTranslationService.GetAllTranslationsForMovieMetadata(message.Movie.MovieMetadataId);
|
||||
var translation = GetMovieTranslation(translations, message.Movie.MovieMetadata, (Language)_configService.MovieInfoLanguage);
|
||||
BroadcastResourceChange(ModelAction.Updated, message.Movie.ToResource(availDelay, translation, _qualityUpgradableSpecification));
|
||||
BroadcastResourceChange(ModelAction.Updated, MapToResource(message.Movie));
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
|
@ -318,10 +315,7 @@ public void Handle(MoviesDeletedEvent message)
|
|||
[NonAction]
|
||||
public void Handle(MovieRenamedEvent message)
|
||||
{
|
||||
var availDelay = _configService.AvailabilityDelay;
|
||||
var translations = _movieTranslationService.GetAllTranslationsForMovieMetadata(message.Movie.MovieMetadataId);
|
||||
var translation = GetMovieTranslation(translations, message.Movie.MovieMetadata, (Language)_configService.MovieInfoLanguage);
|
||||
BroadcastResourceChange(ModelAction.Updated, message.Movie.ToResource(availDelay, translation, _qualityUpgradableSpecification));
|
||||
BroadcastResourceChange(ModelAction.Updated, MapToResource(message.Movie));
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NzbDrone.Core.CustomFormats;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.CustomFormats;
|
||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||
using NzbDrone.Core.Languages;
|
||||
using NzbDrone.Core.MediaCover;
|
||||
|
|
Loading…
Reference in a new issue