mirror of
https://github.com/Radarr/Radarr.git
synced 2024-10-05 15:47:20 +02:00
Include indexer flags to show the correct custom formats in movie file history
This commit is contained in:
parent
58e0b19d06
commit
1865257544
@ -269,17 +269,19 @@ export const actionHandlers = handleThunks({
|
||||
promise.done((data) => {
|
||||
dispatch(batchActions([
|
||||
...movieFileIds.map((id) => {
|
||||
const props = {};
|
||||
|
||||
const movieFile = data.find((file) => file.id === id);
|
||||
|
||||
props.qualityCutoffNotMet = movieFile.qualityCutoffNotMet;
|
||||
const props = {
|
||||
customFormats: movieFile.customFormats,
|
||||
customFormatScore: movieFile.customFormatScore,
|
||||
qualityCutoffNotMet: movieFile.qualityCutoffNotMet
|
||||
};
|
||||
|
||||
if (languages) {
|
||||
props.languages = languages;
|
||||
}
|
||||
|
||||
if (indexerFlags) {
|
||||
if (indexerFlags !== undefined) {
|
||||
props.indexerFlags = indexerFlags;
|
||||
}
|
||||
|
||||
|
@ -228,6 +228,7 @@ public void Handle(MovieFileDeletedEvent message)
|
||||
|
||||
history.Data.Add("Reason", message.Reason.ToString());
|
||||
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
||||
history.Data.Add("IndexerFlags", message.MovieFile.IndexerFlags.ToString());
|
||||
|
||||
_historyRepository.Insert(history);
|
||||
}
|
||||
@ -254,6 +255,7 @@ public void Handle(MovieFileRenamedEvent message)
|
||||
history.Data.Add("Path", path);
|
||||
history.Data.Add("RelativePath", relativePath);
|
||||
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
||||
history.Data.Add("IndexerFlags", message.MovieFile.IndexerFlags.ToString());
|
||||
|
||||
_historyRepository.Insert(history);
|
||||
}
|
||||
|
@ -13,7 +13,6 @@
|
||||
using NzbDrone.Core.Parser;
|
||||
using NzbDrone.Core.Parser.Model;
|
||||
using NzbDrone.SignalR;
|
||||
using Radarr.Api.V3.CustomFormats;
|
||||
using Radarr.Http;
|
||||
using Radarr.Http.REST;
|
||||
using Radarr.Http.REST.Attributes;
|
||||
@ -51,19 +50,14 @@ protected override MovieFileResource GetResourceById(int id)
|
||||
{
|
||||
var movieFile = _mediaFileService.GetMovie(id);
|
||||
var movie = _movieService.GetMovie(movieFile.MovieId);
|
||||
movieFile.Movie = movie;
|
||||
|
||||
var resource = movieFile.ToResource(movie, _qualityUpgradableSpecification);
|
||||
|
||||
var customFormats = _formatCalculator.ParseCustomFormat(movieFile);
|
||||
var customFormatScore = movie?.QualityProfile?.CalculateCustomFormatScore(customFormats) ?? 0;
|
||||
resource.CustomFormats = customFormats.ToResource(false);
|
||||
resource.CustomFormatScore = customFormatScore;
|
||||
var resource = movieFile.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator);
|
||||
|
||||
return resource;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Produces("application/json")]
|
||||
public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int> movieFileIds)
|
||||
{
|
||||
if (!movieId.HasValue && !movieFileIds.Any())
|
||||
@ -81,15 +75,7 @@ public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int>
|
||||
return new List<MovieFileResource>();
|
||||
}
|
||||
|
||||
var resource = file.ToResource(movie, _qualityUpgradableSpecification);
|
||||
file.Movie = movie;
|
||||
|
||||
var customFormats = _formatCalculator.ParseCustomFormat(file);
|
||||
var customFormatScore = movie?.QualityProfile?.CalculateCustomFormatScore(customFormats) ?? 0;
|
||||
resource.CustomFormats = customFormats.ToResource(false);
|
||||
resource.CustomFormatScore = customFormatScore;
|
||||
|
||||
return new List<MovieFileResource> { resource };
|
||||
return new List<MovieFileResource> { file.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator) };
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -97,12 +83,13 @@ public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int>
|
||||
|
||||
return movieFiles.GroupBy(e => e.MovieId)
|
||||
.SelectMany(f => f.ToList()
|
||||
.ConvertAll(e => e.ToResource(_movieService.GetMovie(f.Key), _qualityUpgradableSpecification)))
|
||||
.ConvertAll(e => e.ToResource(_movieService.GetMovie(f.Key), _qualityUpgradableSpecification, _formatCalculator)))
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
[RestPutById]
|
||||
[Consumes("application/json")]
|
||||
public ActionResult<MovieFileResource> SetMovieFile(MovieFileResource movieFileResource)
|
||||
{
|
||||
var movieFile = _mediaFileService.GetMovie(movieFileResource.Id);
|
||||
@ -125,6 +112,7 @@ public ActionResult<MovieFileResource> SetMovieFile(MovieFileResource movieFileR
|
||||
}
|
||||
|
||||
[HttpPut("editor")]
|
||||
[Consumes("application/json")]
|
||||
public object SetMovieFile([FromBody] MovieFileListResource resource)
|
||||
{
|
||||
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
||||
@ -164,10 +152,8 @@ public object SetMovieFile([FromBody] MovieFileListResource resource)
|
||||
}
|
||||
|
||||
_mediaFileService.Update(movieFiles);
|
||||
|
||||
var movie = _movieService.GetMovie(movieFiles.First().MovieId);
|
||||
|
||||
return Accepted(movieFiles.ConvertAll(f => f.ToResource(movie, _qualityUpgradableSpecification)));
|
||||
return Accepted(movieFiles.ConvertAll(f => f.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator)));
|
||||
}
|
||||
|
||||
[RestDeleteById]
|
||||
@ -186,6 +172,7 @@ public void DeleteMovieFile(int id)
|
||||
}
|
||||
|
||||
[HttpDelete("bulk")]
|
||||
[Consumes("application/json")]
|
||||
public object DeleteMovieFiles([FromBody] MovieFileListResource resource)
|
||||
{
|
||||
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using NzbDrone.Core.CustomFormats;
|
||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||
using NzbDrone.Core.Languages;
|
||||
using NzbDrone.Core.MediaFiles;
|
||||
@ -60,14 +61,14 @@ private static MovieFileResource ToResource(this MovieFile model)
|
||||
};
|
||||
}
|
||||
|
||||
public static MovieFileResource ToResource(this MovieFile model, NzbDrone.Core.Movies.Movie movie, IUpgradableSpecification upgradableSpecification)
|
||||
public static MovieFileResource ToResource(this MovieFile model, NzbDrone.Core.Movies.Movie movie, IUpgradableSpecification upgradableSpecification, ICustomFormatCalculationService formatCalculationService)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new MovieFileResource
|
||||
var resource = new MovieFileResource
|
||||
{
|
||||
Id = model.Id,
|
||||
|
||||
@ -86,6 +87,18 @@ public static MovieFileResource ToResource(this MovieFile model, NzbDrone.Core.M
|
||||
QualityCutoffNotMet = upgradableSpecification?.QualityCutoffNotMet(movie.QualityProfile, model.Quality) ?? false,
|
||||
OriginalFilePath = model.OriginalFilePath
|
||||
};
|
||||
|
||||
if (formatCalculationService != null)
|
||||
{
|
||||
model.Movie = movie;
|
||||
var customFormats = formatCalculationService?.ParseCustomFormat(model, model.Movie);
|
||||
var customFormatScore = movie?.QualityProfile?.CalculateCustomFormatScore(customFormats) ?? 0;
|
||||
|
||||
resource.CustomFormats = customFormats.ToResource(false);
|
||||
resource.CustomFormatScore = customFormatScore;
|
||||
}
|
||||
|
||||
return resource;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NzbDrone.Core.CustomFormats;
|
||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||
using NzbDrone.Core.Languages;
|
||||
using NzbDrone.Core.MediaCover;
|
||||
@ -80,7 +81,7 @@ public MovieResource()
|
||||
|
||||
public static class MovieResourceMapper
|
||||
{
|
||||
public static MovieResource ToResource(this Movie model, int availDelay, MovieTranslation movieTranslation = null, IUpgradableSpecification upgradableSpecification = null)
|
||||
public static MovieResource ToResource(this Movie model, int availDelay, MovieTranslation movieTranslation = null, IUpgradableSpecification upgradableSpecification = null, ICustomFormatCalculationService formatCalculationService = null)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
@ -89,7 +90,7 @@ public static MovieResource ToResource(this Movie model, int availDelay, MovieTr
|
||||
|
||||
var size = model.MovieFile?.Size ?? 0;
|
||||
|
||||
var movieFile = model.MovieFile?.ToResource(model, upgradableSpecification);
|
||||
var movieFile = model.MovieFile?.ToResource(model, upgradableSpecification, formatCalculationService);
|
||||
|
||||
var translatedTitle = movieTranslation?.Title ?? model.Title;
|
||||
var translatedOverview = movieTranslation?.Overview ?? model.MovieMetadata.Value.Overview;
|
||||
@ -205,9 +206,9 @@ public static Movie ToModel(this MovieResource resource, Movie movie)
|
||||
return movie;
|
||||
}
|
||||
|
||||
public static List<MovieResource> ToResource(this IEnumerable<Movie> movies, int availDelay, IUpgradableSpecification upgradableSpecification = null)
|
||||
public static List<MovieResource> ToResource(this IEnumerable<Movie> movies, int availDelay, IUpgradableSpecification upgradableSpecification = null, ICustomFormatCalculationService formatCalculationService = null)
|
||||
{
|
||||
return movies.Select(x => ToResource(x, availDelay, null, upgradableSpecification)).ToList();
|
||||
return movies.Select(x => ToResource(x, availDelay, null, upgradableSpecification, formatCalculationService)).ToList();
|
||||
}
|
||||
|
||||
public static List<Movie> ToModel(this IEnumerable<MovieResource> resources)
|
||||
|
Loading…
Reference in New Issue
Block a user