Esempio n. 1
0
        /// <summary>
        /// Detect settings for Parser, based on URL
        /// </summary>
        /// <param name="settings">Indexer Settings to use for Parser</param>
        /// <returns>Parsed Settings or <c>null</c></returns>
        public TorrentRssIndexerParserSettings Detect(TorrentRssIndexerSettings indexerSettings)
        {
            _logger.Debug("Evaluating TorrentRss feed '{0}'", indexerSettings.BaseUrl);

            try
            {
                var requestGenerator = new TorrentRssIndexerRequestGenerator {
                    Settings = indexerSettings
                };
                var request = requestGenerator.GetRecentRequests().GetAllTiers().First().First();

                HttpResponse httpResponse = null;
                try
                {
                    httpResponse = _httpClient.Execute(request.HttpRequest);
                }
                catch (Exception ex)
                {
                    _logger.Warn(ex, string.Format("Unable to connect to indexer {0}: {1}", request.Url, ex.Message));
                    return(null);
                }

                var indexerResponse = new IndexerResponse(request, httpResponse);
                return(GetParserSettings(indexerResponse, indexerSettings));
            }
            catch (Exception ex)
            {
                ex.WithData("FeedUrl", indexerSettings.BaseUrl);
                throw;
            }
        }
        /// <summary>
        /// Detect settings for Parser, based on URL
        /// </summary>
        /// <param name="settings">Indexer Settings to use for Parser</param>
        /// <returns>Parsed Settings or <c>null</c></returns>
        public TorrentRssIndexerParserSettings Detect(TorrentRssIndexerSettings indexerSettings)
        {
            _logger.Debug("Evaluating TorrentRss feed '{0}'", indexerSettings.BaseUrl);

            var requestGenerator = new TorrentRssIndexerRequestGenerator { Settings = indexerSettings };
            var request = requestGenerator.GetRecentRequests().GetAllTiers().First().First();

            HttpResponse httpResponse = null;
            try
            {
                httpResponse = _httpClient.Execute(request.HttpRequest);
            }
            catch (Exception ex)
            {
                _logger.Warn(ex, string.Format("Unable to connect to indexer {0}: {1}", request.Url, ex.Message));
                return null;
            }

            var indexerResponse = new IndexerResponse(request, httpResponse);
            return GetParserSettings(indexerResponse, indexerSettings);
        }