This commit is contained in:
tidusjar 2017-06-24 21:39:33 +01:00
parent b8d3a88409
commit d1d65b24de
7 changed files with 161 additions and 138 deletions

View file

@ -7,7 +7,7 @@ namespace Ombi.Api.Interfaces
{ {
public interface IRadarrApi public interface IRadarrApi
{ {
RadarrAddMovie AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, Uri baseUrl, bool searchNow = false); RadarrAddMovie AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, Uri baseUrl, bool searchNow = false, string minimumAvailability = null);
List<RadarrMovieResponse> GetMovies(string apiKey, Uri baseUrl); List<RadarrMovieResponse> GetMovies(string apiKey, Uri baseUrl);
List<SonarrProfile> GetProfiles(string apiKey, Uri baseUrl); List<SonarrProfile> GetProfiles(string apiKey, Uri baseUrl);
SystemStatus SystemStatus(string apiKey, Uri baseUrl); SystemStatus SystemStatus(string apiKey, Uri baseUrl);

View file

@ -51,6 +51,7 @@ namespace Ombi.Api.Models.Radarr
public string titleSlug { get; set; } public string titleSlug { get; set; }
public int id { get; set; } public int id { get; set; }
public int year { get; set; } public int year { get; set; }
public string minimumAvailability { get; set; }
} }
} }

View file

@ -46,6 +46,7 @@ namespace Ombi.Api.Models.Radarr
public class RadarrMovieResponse public class RadarrMovieResponse
{ {
public string title { get; set; } public string title { get; set; }
public string minimumAvailability { get; set; }
public string sortTitle { get; set; } public string sortTitle { get; set; }
public double sizeOnDisk { get; set; } public double sizeOnDisk { get; set; }
public string status { get; set; } public string status { get; set; }

View file

@ -77,7 +77,7 @@ namespace Ombi.Api
return obj; return obj;
} }
public RadarrAddMovie AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, Uri baseUrl, bool searchNow = false) public RadarrAddMovie AddMovie(int tmdbId, string title, int year, int qualityId, string rootPath, string apiKey, Uri baseUrl, bool searchNow = false, string minimumAvailability = null)
{ {
var request = new RestRequest var request = new RestRequest
{ {
@ -95,6 +95,10 @@ namespace Ombi.Api
monitored = true, monitored = true,
year = year year = year
}; };
if(!string.IsNullOrEmpty(minimumAvailability))
{
options.minimumAvailability = minimumAvailability;
}
if (searchNow) if (searchNow)
{ {

View file

@ -121,7 +121,7 @@ namespace Ombi.Core
} }
var rootFolderPath = model.RootFolderSelected <= 0 ? settings.FullRootPath : GetRootPath(model.RootFolderSelected, settings); var rootFolderPath = model.RootFolderSelected <= 0 ? settings.FullRootPath : GetRootPath(model.RootFolderSelected, settings);
var result = RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, rootFolderPath, settings.ApiKey, settings.FullUri, true); var result = RadarrApi.AddMovie(model.ProviderId, model.Title, model.ReleaseDate.Year, qualityProfile, rootFolderPath, settings.ApiKey, settings.FullUri, true, settings.MinimumAvailability);
if (!string.IsNullOrEmpty(result.Error?.message)) if (!string.IsNullOrEmpty(result.Error?.message))
{ {

View file

@ -33,5 +33,6 @@ namespace Ombi.Core.SettingModels
public string QualityProfile { get; set; } public string QualityProfile { get; set; }
public string RootPath { get; set; } public string RootPath { get; set; }
public string FullRootPath { get; set; } public string FullRootPath { get; set; }
public string MinimumAvailability { get; set; }
} }
} }

View file

@ -63,7 +63,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div> <div>
<button type="submit" id="getProfiles" class="btn btn-primary-outline">Get Quality Profiles <div id="getSpinner"/></button> <button type="submit" id="getProfiles" class="btn btn-primary-outline">Get Quality Profiles <div id="getSpinner" /></button>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -88,9 +88,25 @@
</div> </div>
</div> </div>
<div class="form-group">
<label for="selectRootFolder" class="control-label">Default Minimum Availability</label>
<div id="rootFolders">
<select class="form-control form-control-custom" id="minimumAvailability">
<option @if (Model.MinimumAvailability == "Announced") { <text> selected='selected' </text> } value='Announced'>Announced</option>
<option @if (Model.MinimumAvailability == "InCinemas") { <text> selected='selected' </text> } value='InCinemas'>In Cinemas</option>
<option @if (Model.MinimumAvailability == "Released") { <text> selected='selected' </text> } value='Released'>Physical/Web</option>
<option @if (Model.MinimumAvailability == "PreDb") { <text> selected='selected' </text> } value='PreDb'>
PreDb
</option>
</select>
</div>
</div>
<div class="form-group"> <div class="form-group">
<div> <div>
<button id="testRadarr" type="button" class="btn btn-primary-outline">Test Connectivity <div id="spinner"/></button> <button id="testRadarr" type="button" class="btn btn-primary-outline">Test Connectivity <div id="spinner" /></button>
</div> </div>
</div> </div>
@ -127,17 +143,16 @@
data: $form.serialize(), data: $form.serialize(),
url: "radarrprofiles", url: "radarrprofiles",
dataType: "json", dataType: "json",
success: function(response) { success: function (response) {
response.forEach(function(result) { response.forEach(function (result) {
if (result.id == qualitySelected) { if (result.id == qualitySelected) {
$("#select").append("<option selected='selected' value='" + result.id + "'>" + result.name + "</option>"); $("#select").append("<option selected='selected' value='" + result.id + "'>" + result.name + "</option>");
} else { } else {
$("#select").append("<option value='" + result.id + "'>" + result.name + "</option>"); $("#select").append("<option value='" + result.id + "'>" + result.name + "</option>");
} }
}); });
}, },
error: function(e) { error: function (e) {
console.log(e); console.log(e);
generateNotify("Something went wrong!", "danger"); generateNotify("Something went wrong!", "danger");
} }
@ -191,11 +206,12 @@
var rootFolder = $("#rootFolders option:selected").val(); var rootFolder = $("#rootFolders option:selected").val();
var rootFolderPath = $('#rootFolders option:selected').text(); var rootFolderPath = $('#rootFolders option:selected').text();
$('#fullRootPath').val(rootFolderPath); $('#fullRootPath').val(rootFolderPath);
var minAvailability = $('#minimumAvailability option:selected').val();
var $form = $("#mainForm"); var $form = $("#mainForm");
var data = $form.serialize(); var data = $form.serialize();
data = data + "&qualityProfile=" + qualityProfile + "&rootPath=" + rootFolder; data = data + "&qualityProfile=" + qualityProfile + "&rootPath=" + rootFolder + "&minimumAvailability=" + minAvailability;
$.ajax({ $.ajax({
type: $form.prop("method"), type: $form.prop("method"),