@ -110,31 +110,34 @@ namespace Radarr.Api.V3.Movies
}
[HttpGet]
public List < MovieResource > AllMovie ( int? tmdbId , bool excludeLocalCovers = false )
public List < MovieResource > AllMovie ( int? tmdbId , bool excludeLocalCovers = false , int? languageId = null )
{
var moviesResources = new List < MovieResource > ( ) ;
Dictionary < string , FileInfo > coverFileInfos = null ;
var translationLanguage = languageId is > 0
? Language . All . Single ( l = > l . Id = = languageId . Value )
: ( Language ) _configService . MovieInfoLanguage ;
if ( tmdbId . HasValue )
{
var movie = _moviesService . FindByTmdbId ( tmdbId . Value ) ;
if ( movie ! = null )
{
moviesResources . AddIfNotNull ( MapToResource ( movie )) ;
moviesResources . AddIfNotNull ( MapToResource ( movie , translationLanguage )) ;
}
}
else
{
var movieStats = _movieStatisticsService . MovieStatistics ( ) ;
var configLanguage = ( Language ) _configService . MovieInfoLanguage ;
var availDelay = _configService . AvailabilityDelay ;
var movieTask = Task . Run ( ( ) = > _moviesService . GetAllMovies ( ) ) ;
var translations = _movieTranslationService
. GetAllTranslationsForLanguage ( config Language) ;
. GetAllTranslationsForLanguage ( translation Language) ;
var tdict = translations . ToDictionary ( x = > x . MovieMetadataId ) ;
var sdict = movieStats . ToDictionary ( x = > x . MovieId ) ;
@ -150,7 +153,7 @@ namespace Radarr.Api.V3.Movies
foreach ( var movie in movies )
{
var translation = GetTranslationFromDict ( tdict , movie . MovieMetadata , config Language) ;
var translation = GetTranslationFromDict ( tdict , movie . MovieMetadata , translation Language) ;
moviesResources . Add ( movie . ToResource ( availDelay , translation , _qualityUpgradableSpecification ) ) ;
}
@ -176,17 +179,18 @@ namespace Radarr.Api.V3.Movies
return MapToResource ( movie ) ;
}
protected MovieResource MapToResource ( Movie movie )
protected MovieResource MapToResource ( Movie movie , Language translationLanguage = null )
{
if ( movie = = null )
{
return null ;
}
translationLanguage ? ? = ( Language ) _configService . MovieInfoLanguage ;
var availDelay = _configService . AvailabilityDelay ;
var translations = _movieTranslationService . GetAllTranslationsForMovieMetadata ( movie . MovieMetadataId ) ;
var translation = GetMovieTranslation ( translations , movie . MovieMetadata , ( Language ) _configService . MovieInfo Language) ;
var translation = GetMovieTranslation ( translations , movie . MovieMetadata , translation Language) ;
var resource = movie . ToResource ( availDelay , translation , _qualityUpgradableSpecification ) ;
MapCoversToLocal ( resource ) ;