diff --git a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileController.cs b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileController.cs index 56e300406..f977916c0 100644 --- a/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileController.cs +++ b/src/Sonarr.Api.V3/EpisodeFiles/EpisodeFileController.cs @@ -1,10 +1,13 @@ +using System; using System.Collections.Generic; using System.Linq; +using System.Net; using Microsoft.AspNetCore.Mvc; using NzbDrone.Core.CustomFormats; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.DecisionEngine.Specifications; using NzbDrone.Core.Exceptions; +using NzbDrone.Core.Languages; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.Messaging.Events; @@ -153,7 +156,7 @@ namespace Sonarr.Api.V3.EpisodeFiles if (episodeFile == null) { - throw new NzbDroneClientException(global::System.Net.HttpStatusCode.NotFound, "Episode file not found"); + throw new NzbDroneClientException(HttpStatusCode.NotFound, "Episode file not found"); } var series = _seriesService.GetSeries(episodeFile.SeriesId); @@ -188,7 +191,8 @@ namespace Sonarr.Api.V3.EpisodeFiles if (resourceEpisodeFile.Languages != null) { - episodeFile.Languages = resourceEpisodeFile.Languages; + // Don't allow user to set files with 'Original' language + episodeFile.Languages = resourceEpisodeFile.Languages.Where(l => l != null && l != Language.Original).ToList(); } if (resourceEpisodeFile.Quality != null) @@ -218,7 +222,9 @@ namespace Sonarr.Api.V3.EpisodeFiles } _mediaFileService.Update(episodeFiles); + var series = _seriesService.GetSeries(episodeFiles.First().SeriesId); + return Accepted(episodeFiles.ConvertAll(f => f.ToResource(series, _upgradableSpecification, _formatCalculator))); }