From b8f20cc187f3a36a19fa73582581bcf310844c81 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Sat, 24 Jun 2017 21:51:26 +0100 Subject: [PATCH] Added the minimumAvailability #865 --- src/Ombi.Api.Radarr/IRadarrApi.cs | 2 +- src/Ombi.Api.Radarr/Models/MovieResponse.cs | 1 + src/Ombi.Api.Radarr/Models/RadarrAddMovie.cs | 2 +- src/Ombi.Api.Radarr/RadarrApi.cs | 5 +++-- src/Ombi.Core/MovieSender.cs | 2 +- .../Models/External/RadarrSettings.cs | 1 + src/Ombi/ClientApp/app/interfaces/IRadarr.ts | 5 +++++ .../ClientApp/app/interfaces/ISettings.ts | 1 + .../app/settings/radarr/radarr.component.html | 14 ++++++++++++-- .../app/settings/radarr/radarr.component.ts | 19 +++++++++++++------ 10 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/Ombi.Api.Radarr/IRadarrApi.cs b/src/Ombi.Api.Radarr/IRadarrApi.cs index da2c4f3e2..8df55b748 100644 --- a/src/Ombi.Api.Radarr/IRadarrApi.cs +++ b/src/Ombi.Api.Radarr/IRadarrApi.cs @@ -10,6 +10,6 @@ namespace Ombi.Api.Radarr Task> GetProfiles(string apiKey, string baseUrl); Task> GetRootFolders(string apiKey, string baseUrl); Task SystemStatus(string apiKey, string baseUrl); - Task AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath,string apiKey, string baseUrl, bool searchNow = false); + Task AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath,string apiKey, string baseUrl, bool searchNow, string minimumAvailability); } } \ No newline at end of file diff --git a/src/Ombi.Api.Radarr/Models/MovieResponse.cs b/src/Ombi.Api.Radarr/Models/MovieResponse.cs index dcf8a605a..6f23545dd 100644 --- a/src/Ombi.Api.Radarr/Models/MovieResponse.cs +++ b/src/Ombi.Api.Radarr/Models/MovieResponse.cs @@ -20,6 +20,7 @@ namespace Ombi.Api.Radarr.Models public string studio { get; set; } public string path { get; set; } public int profileId { get; set; } + public string minimumAvailability { get; set; } public bool monitored { get; set; } public int runtime { get; set; } public string lastInfoSync { get; set; } diff --git a/src/Ombi.Api.Radarr/Models/RadarrAddMovie.cs b/src/Ombi.Api.Radarr/Models/RadarrAddMovie.cs index cd685c720..eaf7ee6da 100644 --- a/src/Ombi.Api.Radarr/Models/RadarrAddMovie.cs +++ b/src/Ombi.Api.Radarr/Models/RadarrAddMovie.cs @@ -22,6 +22,6 @@ namespace Ombi.Api.Radarr.Models public string titleSlug { get; set; } public int id { get; set; } public int year { get; set; } - + public string minimumAvailability { get; set; } } } \ No newline at end of file diff --git a/src/Ombi.Api.Radarr/RadarrApi.cs b/src/Ombi.Api.Radarr/RadarrApi.cs index 2a5c92bec..716ba4bf5 100644 --- a/src/Ombi.Api.Radarr/RadarrApi.cs +++ b/src/Ombi.Api.Radarr/RadarrApi.cs @@ -53,7 +53,7 @@ namespace Ombi.Api.Radarr return await Api.Request>(request); } - public async Task AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, string baseUrl, bool searchNow = false) + public async Task AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, string baseUrl, bool searchNow, string minimumAvailability) { var request = new Request("/api/movie", baseUrl, HttpMethod.Post); @@ -65,7 +65,8 @@ namespace Ombi.Api.Radarr rootFolderPath = rootPath, titleSlug = title, monitored = true, - year = year + year = year, + minimumAvailability = minimumAvailability, }; if (searchNow) diff --git a/src/Ombi.Core/MovieSender.cs b/src/Ombi.Core/MovieSender.cs index 6a2919bc9..97f567fe2 100644 --- a/src/Ombi.Core/MovieSender.cs +++ b/src/Ombi.Core/MovieSender.cs @@ -65,7 +65,7 @@ namespace Ombi.Core //var rootFolderPath = model.RootFolderSelected <= 0 ? settings.FullRootPath : GetRootPath(model.RootFolderSelected, settings); var rootFolderPath = settings.DefaultRootPath; // TODO Allow changing in the UI - var result = await RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, rootFolderPath, settings.ApiKey, settings.FullUri, !settings.AddOnly); + var result = await RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, rootFolderPath, settings.ApiKey, settings.FullUri, !settings.AddOnly, settings.MinimumAvailability); if (!string.IsNullOrEmpty(result.Error?.message)) { diff --git a/src/Ombi.Settings/Settings/Models/External/RadarrSettings.cs b/src/Ombi.Settings/Settings/Models/External/RadarrSettings.cs index b7ef0632e..bfed9708c 100644 --- a/src/Ombi.Settings/Settings/Models/External/RadarrSettings.cs +++ b/src/Ombi.Settings/Settings/Models/External/RadarrSettings.cs @@ -9,5 +9,6 @@ namespace Ombi.Settings.Settings.Models.External public string DefaultQualityProfile { get; set; } public string DefaultRootPath { get; set; } public bool AddOnly { get; set; } + public string MinimumAvailability { get; set; } } } \ No newline at end of file diff --git a/src/Ombi/ClientApp/app/interfaces/IRadarr.ts b/src/Ombi/ClientApp/app/interfaces/IRadarr.ts index f2b694535..c2824f04b 100644 --- a/src/Ombi/ClientApp/app/interfaces/IRadarr.ts +++ b/src/Ombi/ClientApp/app/interfaces/IRadarr.ts @@ -11,6 +11,11 @@ export interface IRadarrProfile { items:IItem[], } +export interface IMinimumAvailability { + value: string, + name:string, +} + export interface ICutoff { id: number, name:string, diff --git a/src/Ombi/ClientApp/app/interfaces/ISettings.ts b/src/Ombi/ClientApp/app/interfaces/ISettings.ts index 553d68011..e38eda9d1 100644 --- a/src/Ombi/ClientApp/app/interfaces/ISettings.ts +++ b/src/Ombi/ClientApp/app/interfaces/ISettings.ts @@ -61,6 +61,7 @@ export interface IRadarrSettings extends IExternalSettings { defaultRootPath: string, fullRootPath: string, addOnly: boolean, + minimumAvailability:string, } export interface ILandingPageSettings extends ISettings { diff --git a/src/Ombi/ClientApp/app/settings/radarr/radarr.component.html b/src/Ombi/ClientApp/app/settings/radarr/radarr.component.html index 12c50225a..93b2b2476 100644 --- a/src/Ombi/ClientApp/app/settings/radarr/radarr.component.html +++ b/src/Ombi/ClientApp/app/settings/radarr/radarr.component.html @@ -15,8 +15,9 @@
The Api Key is required
-
A Default Quality Profile is required
-
A Default Root Path is required
+
A Default Quality Profile is required
+
A Default Root Path is required
+
A Default Minimum Availability is required
@@ -94,6 +95,15 @@ +
+ +
+ +
+
+
diff --git a/src/Ombi/ClientApp/app/settings/radarr/radarr.component.ts b/src/Ombi/ClientApp/app/settings/radarr/radarr.component.ts index 0d79291ec..875f25082 100644 --- a/src/Ombi/ClientApp/app/settings/radarr/radarr.component.ts +++ b/src/Ombi/ClientApp/app/settings/radarr/radarr.component.ts @@ -4,7 +4,7 @@ import "rxjs/add/operator/takeUntil"; import { FormGroup, Validators, FormBuilder } from '@angular/forms'; import { IRadarrSettings } from '../../interfaces/ISettings'; -import { IRadarrProfile, IRadarrRootFolder } from '../../interfaces/IRadarr'; +import { IRadarrProfile, IRadarrRootFolder, IMinimumAvailability } from '../../interfaces/IRadarr'; import { SettingsService } from '../../services/settings.service'; import { RadarrService } from '../../services/applications/radarr.service'; import { NotificationService } from "../../services/notification.service"; @@ -19,7 +19,9 @@ export class RadarrComponent implements OnInit { private fb: FormBuilder) { } qualities: IRadarrProfile[]; rootFolders: IRadarrRootFolder[]; - + + minimumAvailabilityOptions: IMinimumAvailability[]; + profilesRunning: boolean; rootFoldersRunning: boolean; @@ -43,18 +45,23 @@ export class RadarrComponent implements OnInit { ip: [x.ip, [Validators.required]], port: [x.port, [Validators.required]], addOnly: [x.addOnly], + minimumAvailability: [x.minimumAvailability, [Validators.required]] }); - if (x.defaultQualityProfile) - { + if (x.defaultQualityProfile) { this.getProfiles(this.form); } - if (x.defaultRootPath) - { + if (x.defaultRootPath) { this.getRootFolders(this.form); } }); + this.minimumAvailabilityOptions = [ + { name: "Announced", value:"Announced" }, + { name: "InCinemas", value:"In Cinemas" }, + { name: "Released", value:"Physical/Web" }, + { name: "PreDb", value:"PreDb" }, + ] }