Use proxied requests for indexers

This commit is contained in:
Bogdan
2024-03-04 15:26:23 +02:00
parent a25e79031f
commit 882152b911
7 changed files with 32 additions and 21 deletions
@@ -14,6 +14,7 @@ using NzbDrone.Core.IndexerSearch.Definitions;
using NzbDrone.Core.Messaging.Events;
using NzbDrone.Core.Parser;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.ThingiProvider;
namespace NzbDrone.Core.Indexers.Definitions
{
@@ -40,7 +41,7 @@ namespace NzbDrone.Core.Indexers.Definitions
public override IParseIndexerResponse GetParser()
{
return new AnimediaParser(Settings, Capabilities.Categories, RateLimit, _httpClient);
return new AnimediaParser(Definition, Settings, Capabilities.Categories, RateLimit, _httpClient);
}
private IndexerCapabilities SetCapabilities()
@@ -144,6 +145,7 @@ namespace NzbDrone.Core.Indexers.Definitions
public class AnimediaParser : IParseIndexerResponse
{
private readonly ProviderDefinition _definition;
private readonly NoAuthTorrentBaseSettings _settings;
private readonly IndexerCapabilitiesCategories _categories;
private readonly TimeSpan _rateLimit;
@@ -157,8 +159,9 @@ namespace NzbDrone.Core.Indexers.Definitions
private static readonly Regex CategorieOVARegex = new Regex(@"ОВА|OVA|ОНА|ONA|Special", RegexOptions.Compiled | RegexOptions.IgnoreCase);
private static readonly Regex CategorieDoramaRegex = new Regex(@"Дорама", RegexOptions.Compiled | RegexOptions.IgnoreCase);
public AnimediaParser(NoAuthTorrentBaseSettings settings, IndexerCapabilitiesCategories categories, TimeSpan rateLimit, IIndexerHttpClient httpClient)
public AnimediaParser(ProviderDefinition definition, NoAuthTorrentBaseSettings settings, IndexerCapabilitiesCategories categories, TimeSpan rateLimit, IIndexerHttpClient httpClient)
{
_definition = definition;
_settings = settings;
_categories = categories;
_rateLimit = rateLimit;
@@ -311,7 +314,7 @@ namespace NzbDrone.Core.Indexers.Definitions
.Build();
var releaseIndexerRequest = new IndexerRequest(releaseRequest);
var releaseResponse = new IndexerResponse(releaseIndexerRequest, _httpClient.Execute(releaseIndexerRequest.HttpRequest));
var releaseResponse = new IndexerResponse(releaseIndexerRequest, _httpClient.ExecuteProxied(releaseIndexerRequest.HttpRequest, _definition));
// Throw common http errors here before we try to parse
if (releaseResponse.HttpResponse.HasHttpError)