private Response WatcherTest() { var settings = this.Bind <WatcherSettings>(); var valid = this.Validate(settings); if (!valid.IsValid) { return(Response.AsJson(valid.SendJsonError())); } try { var status = WatcherApi.Version(settings.ApiKey, settings.FullUri); return(status.response ? Response.AsJson(new JsonResponseModel { Result = true, Message = "Connected to Watcher successfully!" }) : Response.AsJson(new JsonResponseModel { Result = false, Message = $"Could not connect to Watcher, Error: {status.ErrorMessage}" })); } catch (Exception e) // Exceptions are expected if we cannot connect so we will just log and swallow them. { Log.Warn("Exception thrown when attempting to test Watcher "); Log.Warn(e); var message = $"Could not connect to Watcher, please check your settings. <strong>Exception Message:</strong> {e.Message}"; if (e.InnerException != null) { message = $"Could not connect to Watcher, please check your settings. <strong>Exception Message:</strong> {e.InnerException.Message}"; } return(Response.AsJson(new JsonResponseModel { Result = false, Message = message })); } }
public void Queued() { Log.Trace("Getting the settings"); var watcherSettings = WatcherSettings.GetSettings(); Job.SetRunning(true, JobNames.WatcherCacher); try { if (watcherSettings.Enabled) { var movies = WatcherApi.ListMovies(watcherSettings.ApiKey, watcherSettings.FullUri); if (movies.Error) { Log.Error("Error when trying to get Watchers movies"); Log.Error(movies.ErrorMessage); } var wantedMovies = movies?.Movies?.Where(x => x.status.Equals("Wanted", StringComparison.CurrentCultureIgnoreCase)); if (wantedMovies != null && wantedMovies.Any()) { Cache.Set(CacheKeys.WatcherQueued, movies.Movies.Select(x => x.imdbid).ToArray(), CacheKeys.TimeFrameMinutes.SchedulerCaching); } } } catch (Exception e) { Log.Error(e); } finally { Job.Record(JobNames.WatcherCacher); Job.SetRunning(false, JobNames.WatcherCacher); } }
private MovieSenderResult SendToWatcher(RequestedModel model, WatcherSettings settings) { var result = WatcherApi.AddMovie(model.ImdbId, settings.ApiKey, settings.FullUri); if (result.Error) { Log.Error(result.ErrorMessage); return(new MovieSenderResult { Result = false }); } if (result.response) { return(new MovieSenderResult { Result = true, MovieSendingEnabled = true }); } Log.Error(result.message); return(new MovieSenderResult { Result = false, MovieSendingEnabled = true }); }