From 25714f03f7ef778c45f1ef98fa21b62c90260467 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 26 May 2016 13:40:44 +0100 Subject: [PATCH] Fixed #244 --- PlexRequests.UI/Modules/ApprovalModule.cs | 53 ++++++++++++++--------- PlexRequests.UI/Modules/SearchModule.cs | 21 ++++++++- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/PlexRequests.UI/Modules/ApprovalModule.cs b/PlexRequests.UI/Modules/ApprovalModule.cs index c7e95dbd3..2f83e8757 100644 --- a/PlexRequests.UI/Modules/ApprovalModule.cs +++ b/PlexRequests.UI/Modules/ApprovalModule.cs @@ -50,7 +50,7 @@ namespace PlexRequests.UI.Modules ISettingsService sonarrSettings, ISickRageApi srApi, ISettingsService srSettings, ISettingsService hpSettings, IHeadphonesApi hpApi, ISettingsService pr) : base("approval", pr) { - this.RequiresClaims(UserClaims.Admin); + this.RequiresClaims(UserClaims.Admin); Service = service; CpService = cpService; @@ -130,7 +130,7 @@ namespace PlexRequests.UI.Modules Log.Trace("Approval result: {0}", requestResult); if (requestResult) { - return Response.AsJson(new JsonResponseModel {Result = true}); + return Response.AsJson(new JsonResponseModel { Result = true }); } return Response.AsJson(new JsonResponseModel @@ -156,11 +156,9 @@ namespace PlexRequests.UI.Modules request.Approved = true; var requestResult = Service.UpdateRequest(request); Log.Trace("Approval result: {0}", requestResult); - if (requestResult) - { - return Response.AsJson(new JsonResponseModel { Result = true }); - } - return Response.AsJson(new JsonResponseModel { Result = false, Message = "Updated SickRage but could not approve it in PlexRequests :(" }); + return Response.AsJson(requestResult + ? new JsonResponseModel { Result = true } + : new JsonResponseModel { Result = false, Message = "Updated SickRage but could not approve it in PlexRequests :(" }); } return Response.AsJson(new JsonResponseModel { @@ -168,11 +166,13 @@ namespace PlexRequests.UI.Modules Message = result?.message != null ? "Message From SickRage: " + result.message : "Could not add the series to SickRage" }); } - return Response.AsJson(new JsonResponseModel - { - Result = false, - Message = "SickRage or Sonarr are not set up!" - }); + + + request.Approved = true; + var res = Service.UpdateRequest(request); + return Response.AsJson(res + ? new JsonResponseModel { Result = true, Message = "This has been approved, but It has not been sent to Sonarr/SickRage because it has not been configured" } + : new JsonResponseModel { Result = false, Message = "Updated SickRage but could not approve it in PlexRequests :(" }); } private Response RequestMovieAndUpdateStatus(RequestedModel request, string qualityId) @@ -248,9 +248,9 @@ namespace PlexRequests.UI.Modules var sender = new HeadphonesSender(HeadphoneApi, hpSettings, Service); var result = sender.AddAlbum(request); - - return Response.AsJson( new JsonResponseModel { Result = true, Message = "We have sent the approval to Headphones for processing, This can take a few minutes."} ); + + return Response.AsJson(new JsonResponseModel { Result = true, Message = "We have sent the approval to Headphones for processing, This can take a few minutes." }); } private Response ApproveAllMovies() @@ -327,15 +327,23 @@ namespace PlexRequests.UI.Modules { if (r.Type == RequestType.Movie) { - var res = SendMovie(cpSettings, r, CpApi); - if (res) + if (cpSettings.Enabled) { - r.Approved = true; - updatedRequests.Add(r); + var res = SendMovie(cpSettings, r, CpApi); + if (res) + { + r.Approved = true; + updatedRequests.Add(r); + } + else + { + Log.Error("Could not approve and send the movie {0} to couch potato!", r.Title); + } } else { - Log.Error("Could not approve and send the movie {0} to couch potato!", r.Title); + r.Approved = true; + updatedRequests.Add(r); } } if (r.Type == RequestType.TvShow) @@ -358,7 +366,7 @@ namespace PlexRequests.UI.Modules } } - if (sonarr.Enabled) + else if (sonarr.Enabled) { var res = sender.SendToSonarr(sonarr, r); if (!string.IsNullOrEmpty(res?.title)) @@ -372,6 +380,11 @@ namespace PlexRequests.UI.Modules res?.ErrorMessages.ForEach(x => Log.Error("Error messages: {0}", x)); } } + else + { + r.Approved = true; + updatedRequests.Add(r); + } } } try diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs index 97c9ada30..d84447477 100644 --- a/PlexRequests.UI/Modules/SearchModule.cs +++ b/PlexRequests.UI/Modules/SearchModule.cs @@ -606,7 +606,7 @@ namespace PlexRequests.UI.Modules return Response.AsJson(new JsonResponseModel { Result = false, Message = $"{fullShowName} is already in Plex!" }); } } - catch (ApplicationSettingsException) + catch (Exception) { return Response.AsJson(new JsonResponseModel { Result = false, Message = $"We could not check if {fullShowName} is in Plex, are you sure it's correctly setup?" }); } @@ -718,6 +718,25 @@ namespace PlexRequests.UI.Modules return Response.AsJson(new JsonResponseModel { Result = false, Message = result?.message != null ? "Message From SickRage: " + result.message : "Something went wrong adding the movie to SickRage! Please check your settings." }); } + if (!srSettings.Enabled && !sonarrSettings.Enabled) + { + model.Approved = true; + Log.Debug("Adding tv to database requests (No approval required) and Sonarr/Sickrage not setup"); + RequestService.AddRequest(model); + if (ShouldSendNotification()) + { + var notify2 = new NotificationModel + { + Title = model.Title, + User = Username, + DateTime = DateTime.Now, + NotificationType = NotificationType.NewRequest + }; + NotificationService.Publish(notify2); + } + return Response.AsJson(new JsonResponseModel { Result = true, Message = $"{fullShowName} was successfully added!" }); + } + return Response.AsJson(new JsonResponseModel { Result = false, Message = "The request of TV Shows is not correctly set up. Please contact your admin." }); }