Fixed: Add translations for import list movies in Discover

pull/8949/head
Bogdan 2 years ago
parent c42fc6094d
commit b337f62a34

@ -9,6 +9,7 @@ using NzbDrone.Core.Languages;
using NzbDrone.Core.MediaCover; using NzbDrone.Core.MediaCover;
using NzbDrone.Core.MetadataSource; using NzbDrone.Core.MetadataSource;
using NzbDrone.Core.Movies; using NzbDrone.Core.Movies;
using NzbDrone.Core.Movies.Translations;
using NzbDrone.Core.Organizer; using NzbDrone.Core.Organizer;
using Radarr.Api.V3.Movies; using Radarr.Api.V3.Movies;
using Radarr.Http; using Radarr.Http;
@ -26,6 +27,7 @@ namespace Radarr.Api.V3.ImportLists
private readonly IImportListFactory _importListFactory; private readonly IImportListFactory _importListFactory;
private readonly IImportExclusionsService _importExclusionService; private readonly IImportExclusionsService _importExclusionService;
private readonly INamingConfigService _namingService; private readonly INamingConfigService _namingService;
private readonly IMovieTranslationService _movieTranslationService;
private readonly IConfigService _configService; private readonly IConfigService _configService;
public ImportListMoviesController(IMovieService movieService, public ImportListMoviesController(IMovieService movieService,
@ -36,6 +38,7 @@ namespace Radarr.Api.V3.ImportLists
IImportListFactory importListFactory, IImportListFactory importListFactory,
IImportExclusionsService importExclusionsService, IImportExclusionsService importExclusionsService,
INamingConfigService namingService, INamingConfigService namingService,
IMovieTranslationService movieTranslationService,
IConfigService configService) IConfigService configService)
{ {
_movieService = movieService; _movieService = movieService;
@ -46,6 +49,7 @@ namespace Radarr.Api.V3.ImportLists
_importListFactory = importListFactory; _importListFactory = importListFactory;
_importExclusionService = importExclusionsService; _importExclusionService = importExclusionsService;
_namingService = namingService; _namingService = namingService;
_movieTranslationService = movieTranslationService;
_configService = configService; _configService = configService;
} }
@ -132,6 +136,10 @@ namespace Radarr.Api.V3.ImportLists
// Avoid calling for naming spec on every movie in filenamebuilder // Avoid calling for naming spec on every movie in filenamebuilder
var namingConfig = _namingService.GetConfig(); var namingConfig = _namingService.GetConfig();
var translations = _movieTranslationService
.GetAllTranslationsForLanguage(language)
.ToDictionary(x => x.MovieMetadataId);
foreach (var currentMovie in movies) foreach (var currentMovie in movies)
{ {
var resource = DiscoverMoviesResourceMapper.ToResource(currentMovie); var resource = DiscoverMoviesResourceMapper.ToResource(currentMovie);
@ -141,7 +149,7 @@ namespace Radarr.Api.V3.ImportLists
resource.RemotePoster = poster.Url; resource.RemotePoster = poster.Url;
} }
var translation = currentMovie.MovieMetadata.Value.Translations.FirstOrDefault(t => t.Language == language); var translation = GetTranslationFromDictionary(translations, currentMovie.MovieMetadata, language);
resource.Title = translation?.Title ?? resource.Title; resource.Title = translation?.Title ?? resource.Title;
resource.Overview = translation?.Overview ?? resource.Overview; resource.Overview = translation?.Overview ?? resource.Overview;
@ -153,5 +161,21 @@ namespace Radarr.Api.V3.ImportLists
yield return resource; yield return resource;
} }
} }
private MovieTranslation GetTranslationFromDictionary(Dictionary<int, MovieTranslation> translations, MovieMetadata movie, Language configLanguage)
{
if (configLanguage == Language.Original)
{
return new MovieTranslation
{
Title = movie.OriginalTitle,
Overview = movie.Overview
};
}
translations.TryGetValue(movie.Id, out var translation);
return translation;
}
} }
} }

Loading…
Cancel
Save