From 36d4e9e6cdcf2de58270dd1d8db174ed492af609 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 18 Feb 2025 03:45:26 +0200 Subject: [PATCH] New: Movie Requested filter for interactive search --- frontend/src/Store/Actions/releaseActions.js | 6 ++++++ src/NzbDrone.Core/Localization/Core/en.json | 1 + src/NzbDrone.Core/Parser/Model/RemoteMovie.cs | 1 + src/NzbDrone.Core/Parser/ParsingService.cs | 5 +++++ src/Radarr.Api.V3/Indexers/ReleaseController.cs | 1 + src/Radarr.Api.V3/Indexers/ReleaseResource.cs | 2 ++ 6 files changed, 16 insertions(+) diff --git a/frontend/src/Store/Actions/releaseActions.js b/frontend/src/Store/Actions/releaseActions.js index 6c74752b7..02a69d778 100644 --- a/frontend/src/Store/Actions/releaseActions.js +++ b/frontend/src/Store/Actions/releaseActions.js @@ -210,6 +210,12 @@ export const defaultState = { name: 'rejectionCount', label: () => translate('RejectionCount'), type: filterBuilderTypes.NUMBER + }, + { + name: 'movieRequested', + label: () => translate('MovieRequested'), + type: filterBuilderTypes.EXACT, + valueType: filterBuilderValueTypes.BOOL } ], selectedFilterKey: 'all' diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index f8b430943..becd8996d 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -1045,6 +1045,7 @@ "MovieMissingFromDisk": "Movie missing from disk", "MovieNaming": "Movie Naming", "MovieOnly": "Movie Only", + "MovieRequested": "Movie Requested", "MovieSearchResultsLoadError": "Unable to load results for this movie search. Try again later", "MovieTitle": "Movie Title", "MovieTitleToExcludeHelpText": "The title of the movie to exclude (can be anything meaningful)", diff --git a/src/NzbDrone.Core/Parser/Model/RemoteMovie.cs b/src/NzbDrone.Core/Parser/Model/RemoteMovie.cs index d969ab14d..f33d31d9b 100644 --- a/src/NzbDrone.Core/Parser/Model/RemoteMovie.cs +++ b/src/NzbDrone.Core/Parser/Model/RemoteMovie.cs @@ -14,6 +14,7 @@ namespace NzbDrone.Core.Parser.Model public int CustomFormatScore { get; set; } public MovieMatchType MovieMatchType { get; set; } public Movie Movie { get; set; } + public bool MovieRequested { get; set; } public bool DownloadAllowed { get; set; } public TorrentSeedConfiguration SeedConfiguration { get; set; } public List Languages { get; set; } diff --git a/src/NzbDrone.Core/Parser/ParsingService.cs b/src/NzbDrone.Core/Parser/ParsingService.cs index 18da76b92..cd406d50c 100644 --- a/src/NzbDrone.Core/Parser/ParsingService.cs +++ b/src/NzbDrone.Core/Parser/ParsingService.cs @@ -116,6 +116,11 @@ namespace NzbDrone.Core.Parser remoteMovie.Languages = parsedMovieInfo.Languages; + if (searchCriteria != null) + { + remoteMovie.MovieRequested = remoteMovie.Movie?.Id == searchCriteria.Movie?.Id; + } + return remoteMovie; } diff --git a/src/Radarr.Api.V3/Indexers/ReleaseController.cs b/src/Radarr.Api.V3/Indexers/ReleaseController.cs index 3ef26ae4f..3130b2d4f 100644 --- a/src/Radarr.Api.V3/Indexers/ReleaseController.cs +++ b/src/Radarr.Api.V3/Indexers/ReleaseController.cs @@ -85,6 +85,7 @@ namespace Radarr.Api.V3.Indexers { Release = remoteMovie.Release, ParsedMovieInfo = remoteMovie.ParsedMovieInfo.JsonClone(), + MovieRequested = remoteMovie.MovieRequested, DownloadAllowed = remoteMovie.DownloadAllowed, SeedConfiguration = remoteMovie.SeedConfiguration, CustomFormats = remoteMovie.CustomFormats, diff --git a/src/Radarr.Api.V3/Indexers/ReleaseResource.cs b/src/Radarr.Api.V3/Indexers/ReleaseResource.cs index d77897a6f..f6b2219f0 100644 --- a/src/Radarr.Api.V3/Indexers/ReleaseResource.cs +++ b/src/Radarr.Api.V3/Indexers/ReleaseResource.cs @@ -44,6 +44,7 @@ namespace Radarr.Api.V3.Indexers public string CommentUrl { get; set; } public string DownloadUrl { get; set; } public string InfoUrl { get; set; } + public bool MovieRequested { get; set; } public bool DownloadAllowed { get; set; } public int ReleaseWeight { get; set; } public string Edition { get; set; } @@ -110,6 +111,7 @@ namespace Radarr.Api.V3.Indexers CommentUrl = releaseInfo.CommentUrl, DownloadUrl = releaseInfo.DownloadUrl, InfoUrl = releaseInfo.InfoUrl, + MovieRequested = remoteMovie.MovieRequested, DownloadAllowed = remoteMovie.DownloadAllowed, Edition = parsedMovieInfo.Edition,