Ejemplo n.º 1
0
        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
                }));
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
            });
        }