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) => {
|
promise.done((data) => {
|
||||||
dispatch(batchActions([
|
dispatch(batchActions([
|
||||||
...movieFileIds.map((id) => {
|
...movieFileIds.map((id) => {
|
||||||
const props = {};
|
|
||||||
|
|
||||||
const movieFile = data.find((file) => file.id === id);
|
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) {
|
if (languages) {
|
||||||
props.languages = languages;
|
props.languages = languages;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (indexerFlags) {
|
if (indexerFlags !== undefined) {
|
||||||
props.indexerFlags = indexerFlags;
|
props.indexerFlags = indexerFlags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,6 +228,7 @@ public void Handle(MovieFileDeletedEvent message)
|
|||||||
|
|
||||||
history.Data.Add("Reason", message.Reason.ToString());
|
history.Data.Add("Reason", message.Reason.ToString());
|
||||||
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
||||||
|
history.Data.Add("IndexerFlags", message.MovieFile.IndexerFlags.ToString());
|
||||||
|
|
||||||
_historyRepository.Insert(history);
|
_historyRepository.Insert(history);
|
||||||
}
|
}
|
||||||
@ -254,6 +255,7 @@ public void Handle(MovieFileRenamedEvent message)
|
|||||||
history.Data.Add("Path", path);
|
history.Data.Add("Path", path);
|
||||||
history.Data.Add("RelativePath", relativePath);
|
history.Data.Add("RelativePath", relativePath);
|
||||||
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
history.Data.Add("ReleaseGroup", message.MovieFile.ReleaseGroup);
|
||||||
|
history.Data.Add("IndexerFlags", message.MovieFile.IndexerFlags.ToString());
|
||||||
|
|
||||||
_historyRepository.Insert(history);
|
_historyRepository.Insert(history);
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
using NzbDrone.Core.Parser;
|
using NzbDrone.Core.Parser;
|
||||||
using NzbDrone.Core.Parser.Model;
|
using NzbDrone.Core.Parser.Model;
|
||||||
using NzbDrone.SignalR;
|
using NzbDrone.SignalR;
|
||||||
using Radarr.Api.V3.CustomFormats;
|
|
||||||
using Radarr.Http;
|
using Radarr.Http;
|
||||||
using Radarr.Http.REST;
|
using Radarr.Http.REST;
|
||||||
using Radarr.Http.REST.Attributes;
|
using Radarr.Http.REST.Attributes;
|
||||||
@ -51,19 +50,14 @@ protected override MovieFileResource GetResourceById(int id)
|
|||||||
{
|
{
|
||||||
var movieFile = _mediaFileService.GetMovie(id);
|
var movieFile = _mediaFileService.GetMovie(id);
|
||||||
var movie = _movieService.GetMovie(movieFile.MovieId);
|
var movie = _movieService.GetMovie(movieFile.MovieId);
|
||||||
movieFile.Movie = movie;
|
|
||||||
|
|
||||||
var resource = movieFile.ToResource(movie, _qualityUpgradableSpecification);
|
var resource = movieFile.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator);
|
||||||
|
|
||||||
var customFormats = _formatCalculator.ParseCustomFormat(movieFile);
|
|
||||||
var customFormatScore = movie?.QualityProfile?.CalculateCustomFormatScore(customFormats) ?? 0;
|
|
||||||
resource.CustomFormats = customFormats.ToResource(false);
|
|
||||||
resource.CustomFormatScore = customFormatScore;
|
|
||||||
|
|
||||||
return resource;
|
return resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
|
[Produces("application/json")]
|
||||||
public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int> movieFileIds)
|
public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int> movieFileIds)
|
||||||
{
|
{
|
||||||
if (!movieId.HasValue && !movieFileIds.Any())
|
if (!movieId.HasValue && !movieFileIds.Any())
|
||||||
@ -81,15 +75,7 @@ public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int>
|
|||||||
return new List<MovieFileResource>();
|
return new List<MovieFileResource>();
|
||||||
}
|
}
|
||||||
|
|
||||||
var resource = file.ToResource(movie, _qualityUpgradableSpecification);
|
return new List<MovieFileResource> { file.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator) };
|
||||||
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 };
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -97,12 +83,13 @@ public List<MovieFileResource> GetMovieFiles(int? movieId, [FromQuery] List<int>
|
|||||||
|
|
||||||
return movieFiles.GroupBy(e => e.MovieId)
|
return movieFiles.GroupBy(e => e.MovieId)
|
||||||
.SelectMany(f => f.ToList()
|
.SelectMany(f => f.ToList()
|
||||||
.ConvertAll(e => e.ToResource(_movieService.GetMovie(f.Key), _qualityUpgradableSpecification)))
|
.ConvertAll(e => e.ToResource(_movieService.GetMovie(f.Key), _qualityUpgradableSpecification, _formatCalculator)))
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[RestPutById]
|
[RestPutById]
|
||||||
|
[Consumes("application/json")]
|
||||||
public ActionResult<MovieFileResource> SetMovieFile(MovieFileResource movieFileResource)
|
public ActionResult<MovieFileResource> SetMovieFile(MovieFileResource movieFileResource)
|
||||||
{
|
{
|
||||||
var movieFile = _mediaFileService.GetMovie(movieFileResource.Id);
|
var movieFile = _mediaFileService.GetMovie(movieFileResource.Id);
|
||||||
@ -125,6 +112,7 @@ public ActionResult<MovieFileResource> SetMovieFile(MovieFileResource movieFileR
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("editor")]
|
[HttpPut("editor")]
|
||||||
|
[Consumes("application/json")]
|
||||||
public object SetMovieFile([FromBody] MovieFileListResource resource)
|
public object SetMovieFile([FromBody] MovieFileListResource resource)
|
||||||
{
|
{
|
||||||
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
||||||
@ -164,10 +152,8 @@ public object SetMovieFile([FromBody] MovieFileListResource resource)
|
|||||||
}
|
}
|
||||||
|
|
||||||
_mediaFileService.Update(movieFiles);
|
_mediaFileService.Update(movieFiles);
|
||||||
|
|
||||||
var movie = _movieService.GetMovie(movieFiles.First().MovieId);
|
var movie = _movieService.GetMovie(movieFiles.First().MovieId);
|
||||||
|
return Accepted(movieFiles.ConvertAll(f => f.ToResource(movie, _qualityUpgradableSpecification, _formatCalculator)));
|
||||||
return Accepted(movieFiles.ConvertAll(f => f.ToResource(movie, _qualityUpgradableSpecification)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[RestDeleteById]
|
[RestDeleteById]
|
||||||
@ -186,6 +172,7 @@ public void DeleteMovieFile(int id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpDelete("bulk")]
|
[HttpDelete("bulk")]
|
||||||
|
[Consumes("application/json")]
|
||||||
public object DeleteMovieFiles([FromBody] MovieFileListResource resource)
|
public object DeleteMovieFiles([FromBody] MovieFileListResource resource)
|
||||||
{
|
{
|
||||||
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
var movieFiles = _mediaFileService.GetMovies(resource.MovieFileIds);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using NzbDrone.Core.MediaFiles;
|
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)
|
if (model == null)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return new MovieFileResource
|
var resource = new MovieFileResource
|
||||||
{
|
{
|
||||||
Id = model.Id,
|
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,
|
QualityCutoffNotMet = upgradableSpecification?.QualityCutoffNotMet(movie.QualityProfile, model.Quality) ?? false,
|
||||||
OriginalFilePath = model.OriginalFilePath
|
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;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using NzbDrone.Core.CustomFormats;
|
||||||
using NzbDrone.Core.DecisionEngine.Specifications;
|
using NzbDrone.Core.DecisionEngine.Specifications;
|
||||||
using NzbDrone.Core.Languages;
|
using NzbDrone.Core.Languages;
|
||||||
using NzbDrone.Core.MediaCover;
|
using NzbDrone.Core.MediaCover;
|
||||||
@ -80,7 +81,7 @@ public MovieResource()
|
|||||||
|
|
||||||
public static class MovieResourceMapper
|
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)
|
if (model == null)
|
||||||
{
|
{
|
||||||
@ -89,7 +90,7 @@ public static MovieResource ToResource(this Movie model, int availDelay, MovieTr
|
|||||||
|
|
||||||
var size = model.MovieFile?.Size ?? 0;
|
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 translatedTitle = movieTranslation?.Title ?? model.Title;
|
||||||
var translatedOverview = movieTranslation?.Overview ?? model.MovieMetadata.Value.Overview;
|
var translatedOverview = movieTranslation?.Overview ?? model.MovieMetadata.Value.Overview;
|
||||||
@ -205,9 +206,9 @@ public static Movie ToModel(this MovieResource resource, Movie movie)
|
|||||||
return 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)
|
public static List<Movie> ToModel(this IEnumerable<MovieResource> resources)
|
||||||
|
Loading…
Reference in New Issue
Block a user