pull/83/head
tidusjar 9 years ago
parent af6deec3f0
commit 37fa7809cc

@ -64,7 +64,7 @@ namespace PlexRequests.Api
}; };
var options = new SonarrAddSeries(); var options = new SonarrAddSeries();
if (episodes == true) if (episodes)
{ {
options.addOptions = new AddOptions options.addOptions = new AddOptions
{ {

@ -33,6 +33,7 @@ namespace PlexRequests.Core.SettingModels
{ {
public class CouchPotatoSettings : Settings public class CouchPotatoSettings : Settings
{ {
public bool Enabled { get; set; }
public string Ip { get; set; } public string Ip { get; set; }
public int Port { get; set; } public int Port { get; set; }
public string ApiKey { get; set; } public string ApiKey { get; set; }

@ -114,7 +114,7 @@ $(".theNoteSaveButton").click(function (e) {
var $form = $("#noteForm"); var $form = $("#noteForm");
var data = $form.serialize(); var data = $form.serialize();
$.ajax({ $.ajax({
type: $form.prop("method"), type: $form.prop("method"),
@ -198,7 +198,11 @@ $(document).on("click", ".approve", function (e) {
success: function (response) { success: function (response) {
if (checkJsonResponse(response)) { if (checkJsonResponse(response)) {
generateNotify("Success! Request Approved.", "success"); if (response.message) {
generateNotify(response.message, "success");
} else {
generateNotify("Success! Request Approved.", "success");
}
$("button[custom-button='" + buttonId + "']").remove(); $("button[custom-button='" + buttonId + "']").remove();
$("#" + buttonId + "notapproved").prop("class", "fa fa-check"); $("#" + buttonId + "notapproved").prop("class", "fa fa-check");
@ -227,7 +231,7 @@ $(document).on("click", ".clear", function (e) {
if (checkJsonResponse(response)) { if (checkJsonResponse(response)) {
generateNotify("Success! Issues Cleared.", "info"); generateNotify("Success! Issues Cleared.", "info");
$('#issueArea'+buttonId).html("<div>Issue: None</div>"); $('#issueArea' + buttonId).html("<div>Issue: None</div>");
} }
}, },
error: function (e) { error: function (e) {
@ -258,7 +262,7 @@ $(document).on("click", ".change", function (e) {
if (checkJsonResponse(response)) { if (checkJsonResponse(response)) {
generateNotify("Success! Availibility changed.", "info"); generateNotify("Success! Availibility changed.", "info");
var button = $("button[custom-availibility='" + buttonId + "']"); var button = $("button[custom-availibility='" + buttonId + "']");
var icon = $('#availableIcon'+buttonId); var icon = $('#availableIcon' + buttonId);
if (response.available) { if (response.available) {
button.text("Mark Unavailable"); button.text("Mark Unavailable");

@ -121,12 +121,12 @@ namespace PlexRequests.UI.Modules
Log.Info("Sent successfully, Approving request now."); Log.Info("Sent successfully, Approving request now.");
request.Approved = true; request.Approved = true;
var requestResult = Service.UpdateRequest(request); var requestResult = Service.UpdateRequest(request);
Log.Trace("Approval result: {0}",requestResult); Log.Trace("Approval result: {0}", requestResult);
if (requestResult) if (requestResult)
{ {
return Response.AsJson(new JsonResponseModel { Result = true }); return Response.AsJson(new JsonResponseModel { Result = true });
} }
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Updated Sonarr but could not approve it in PlexRequests :("}); return Response.AsJson(new JsonResponseModel { Result = false, Message = "Updated Sonarr but could not approve it in PlexRequests :(" });
} }
return Response.AsJson(new JsonResponseModel return Response.AsJson(new JsonResponseModel
{ {
@ -177,6 +177,21 @@ namespace PlexRequests.UI.Modules
var cpSettings = CpService.GetSettings(); var cpSettings = CpService.GetSettings();
var cp = new CouchPotatoApi(); var cp = new CouchPotatoApi();
Log.Info("Adding movie to CP : {0}", request.Title); Log.Info("Adding movie to CP : {0}", request.Title);
if (!cpSettings.Enabled)
{
// Approve it
request.Approved = true;
// Update the record
var inserted = Service.UpdateRequest(request);
return Response.AsJson(inserted
? new JsonResponseModel { Result = true, Message = "This has been approved, but It has not been sent to CouchPotato because it has not been configured." }
: new JsonResponseModel
{
Result = false,
Message = "We could not approve this request. Please try again or check the logs."
});
}
var result = cp.AddMovie(request.ImdbId, cpSettings.ApiKey, request.Title, cpSettings.FullUri, cpSettings.ProfileId); var result = cp.AddMovie(request.ImdbId, cpSettings.ApiKey, request.Title, cpSettings.FullUri, cpSettings.ProfileId);
Log.Trace("Adding movie to CP result {0}", result); Log.Trace("Adding movie to CP result {0}", result);
if (result) if (result)
@ -188,7 +203,7 @@ namespace PlexRequests.UI.Modules
var inserted = Service.UpdateRequest(request); var inserted = Service.UpdateRequest(request);
return Response.AsJson(inserted return Response.AsJson(inserted
? new JsonResponseModel {Result = true} ? new JsonResponseModel { Result = true }
: new JsonResponseModel : new JsonResponseModel
{ {
Result = false, Result = false,
@ -239,7 +254,7 @@ namespace PlexRequests.UI.Modules
} }
if (r.Type == RequestType.TvShow) if (r.Type == RequestType.TvShow)
{ {
var sender = new TvSender(SonarrApi,SickRageApi); var sender = new TvSender(SonarrApi, SickRageApi);
var sr = SickRageSettings.GetSettings(); var sr = SickRageSettings.GetSettings();
var sonarr = SonarrSettings.GetSettings(); var sonarr = SonarrSettings.GetSettings();
if (sr.Enabled) if (sr.Enabled)
@ -289,7 +304,7 @@ namespace PlexRequests.UI.Modules
} }
private bool SendMovie(CouchPotatoSettings settings, RequestedModel r, ICouchPotatoApi cp) private bool SendMovie(CouchPotatoSettings settings, RequestedModel r, ICouchPotatoApi cp)
{ {
Log.Info("Adding movie to CP : {0}", r.Title); Log.Info("Adding movie to CP : {0}", r.Title);
var result = cp.AddMovie(r.ImdbId, settings.ApiKey, r.Title, settings.FullUri, settings.ProfileId); var result = cp.AddMovie(r.ImdbId, settings.ApiKey, r.Title, settings.FullUri, settings.ProfileId);
Log.Trace("Adding movie to CP result {0}", result); Log.Trace("Adding movie to CP result {0}", result);

@ -176,15 +176,6 @@ namespace PlexRequests.UI.Modules
} }
Log.Debug("movie with id {0} doesnt exists", movieId); Log.Debug("movie with id {0} doesnt exists", movieId);
var cpSettings = CpService.GetSettings();
if (cpSettings.ApiKey == null)
{
Log.Warn("CP apiKey is null");
return Response.AsJson(new JsonResponseModel { Result = false, Message = "CouchPotato is not yet configured, If you are the Admin, please log in." });
}
Log.Trace("Settings: ");
Log.Trace(cpSettings.DumpJson);
var movieApi = new TheMovieDbApi(); var movieApi = new TheMovieDbApi();
var movieInfo = movieApi.GetMovieInformation(movieId).Result; var movieInfo = movieApi.GetMovieInformation(movieId).Result;
@ -219,6 +210,11 @@ namespace PlexRequests.UI.Modules
Log.Trace(settings.DumpJson()); Log.Trace(settings.DumpJson());
if (!settings.RequireApproval) if (!settings.RequireApproval)
{ {
var cpSettings = CpService.GetSettings();
Log.Trace("Settings: ");
Log.Trace(cpSettings.DumpJson);
Log.Info("Adding movie to CP (No approval required)"); Log.Info("Adding movie to CP (No approval required)");
var result = CouchPotatoApi.AddMovie(model.ImdbId, cpSettings.ApiKey, model.Title, cpSettings.FullUri, cpSettings.ProfileId); var result = CouchPotatoApi.AddMovie(model.ImdbId, cpSettings.ApiKey, model.Title, cpSettings.FullUri, cpSettings.ProfileId);
Log.Debug("Adding movie to CP result {0}", result); Log.Debug("Adding movie to CP result {0}", result);

@ -14,7 +14,20 @@
<form class="form-horizontal" method="POST" id="mainForm"> <form class="form-horizontal" method="POST" id="mainForm">
<fieldset> <fieldset>
<legend>CouchPotato Settings</legend> <legend>CouchPotato Settings</legend>
<div class="form-group">
<div class="checkbox">
<label>
@if (Model.Enabled)
{
<input type="checkbox" id="Enabled" name="Enabled" checked="checked"><text>Enabled</text>
}
else
{
<input type="checkbox" id="Enabled" name="Enabled"><text>Enabled</text>
}
</label>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label for="Ip" class="control-label">CouchPotato Hostname or IP</label> <label for="Ip" class="control-label">CouchPotato Hostname or IP</label>
<div class=""> <div class="">

Loading…
Cancel
Save