Exemple #1
0
        public override HealthCheck Check()
        {
            var enabled = _indexerFactory.RssEnabled(false);

            if (enabled.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Error, "No indexers available with RSS sync enabled, Sonarr will not grab new releases automatically"));
            }

            var active = _indexerFactory.RssEnabled(true);

            if (active.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Warning, "All rss-capable indexers are temporarily unavailable due to recent indexer errors"));
            }

            return(new HealthCheck(GetType()));
        }
Exemple #2
0
        public override HealthCheck Check()
        {
            var enabled = _indexerFactory.RssEnabled(false);

            if (enabled.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Error, _localizationService.GetLocalizedString("IndexerRssHealthCheckNoIndexers"), "#no-indexers-available-with-rss-sync-enabled-radarr-will-not-grab-new-releases-automatically"));
            }

            var active = _indexerFactory.RssEnabled(true);

            if (active.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Warning, _localizationService.GetLocalizedString("IndexerRssHealthCheckNoAvailableIndexers"), "#indexers-are-unavailable-due-to-failures"));
            }

            return(new HealthCheck(GetType()));
        }
Exemple #3
0
        public override HealthCheck Check()
        {
            var enabled = _indexerFactory.RssEnabled(false);

            if (enabled.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Error, _localizationService.GetLocalizedString("IndexerRssHealthCheckNoIndexers"), "#no_indexers_available_with_rss_sync_enabled_radarr_will_not_grab_new_releases_automatically"));
            }

            var active = _indexerFactory.RssEnabled(true);

            if (active.Empty())
            {
                return(new HealthCheck(GetType(), HealthCheckResult.Warning, _localizationService.GetLocalizedString("IndexerRssHealthCheckNoAvailableIndexers"), "#indexers_are_unavailable_due_to_failures"));
            }

            return(new HealthCheck(GetType()));
        }
        public List <ReleaseInfo> Fetch()
        {
            var result = new List <ReleaseInfo>();

            var indexers = _indexerFactory.RssEnabled();

            if (!indexers.Any())
            {
                _logger.Warn("No available indexers. check your configuration.");
                return(result);
            }

            _logger.Debug("Available indexers {0}", indexers.Count);

            var taskList    = new List <Task>();
            var taskFactory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None);

            foreach (var indexer in indexers)
            {
                var indexerLocal = indexer;

                var task = taskFactory.StartNew(() =>
                {
                    try
                    {
                        var indexerReports = indexerLocal.FetchRecent();

                        lock (result)
                        {
                            _logger.Debug("Found {0} from {1}", indexerReports.Count, indexer.Name);

                            result.AddRange(indexerReports);
                        }
                    }
                    catch (Exception e)
                    {
                        _logger.Error(e, "Error during RSS Sync");
                    }
                }).LogExceptions();

                taskList.Add(task);
            }

            Task.WaitAll(taskList.ToArray());

            _logger.Debug("Found {0} reports", result.Count);

            return(result);
        }
Exemple #5
0
        public List <ReleaseInfo> Fetch()
        {
            var result = new List <ReleaseInfo>();

            var indexers = _indexerFactory.RssEnabled().ToList();

            if (!indexers.Any())
            {
                _logger.Warn("No available indexers. check your configuration.");
                return(result);
            }

            _logger.Debug("Available indexers {0}", indexers.Count);

            var taskList    = new List <Task>();
            var taskFactory = new TaskFactory(TaskCreationOptions.LongRunning, TaskContinuationOptions.None);

            foreach (var indexer in indexers)
            {
                var indexerLocal = indexer;

                var task = taskFactory.StartNew(() =>
                {
                    var indexerFeed = _feedFetcher.FetchRss(indexerLocal);

                    lock (result)
                    {
                        result.AddRange(indexerFeed);
                    }
                }).LogExceptions();

                taskList.Add(task);
            }

            Task.WaitAll(taskList.ToArray());

            _logger.Debug("Found {0} reports", result.Count);

            return(result);
        }