core: allow to set user-agent header per indexer (#10528)

This commit is contained in:
Diego Heras
2020-12-16 01:42:41 +01:00
committed by GitHub
parent 6e87fe4860
commit bf8cae6a48
3 changed files with 21 additions and 15 deletions

View File

@@ -14,7 +14,7 @@
<PackageReference Include="Autofac" Version="5.2.0" />
<PackageReference Include="AutoMapper" Version="8.1.1" />
<PackageReference Include="BencodeNET" Version="3.1.4" />
<PackageReference Include="FlareSolverrSharp" Version="1.2.0" />
<PackageReference Include="FlareSolverrSharp" Version="1.2.1" />
<PackageReference Include="CommandLineParser" Version="2.8.0" />
<PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />

View File

@@ -75,11 +75,9 @@ namespace Jackett.Common.Utils.Clients
cookies.Add(cookieUrl, new Cookie(kv.Key, kv.Value));
}
var userAgent = webRequest.EmulateBrowser.Value ? BrowserUtil.ChromeUserAgent : "Jackett/" + configService.GetVersion();
using (var clearanceHandlr = new ClearanceHandler(serverConfig.FlareSolverrUrl))
{
clearanceHandlr.UserAgent = userAgent;
clearanceHandlr.UserAgent = BrowserUtil.ChromeUserAgent;
clearanceHandlr.MaxTimeout = 50000;
using (var clientHandlr = new HttpClientHandler
{
@@ -94,12 +92,6 @@ namespace Jackett.Common.Utils.Clients
clearanceHandlr.InnerHandler = clientHandlr;
using (var client = new HttpClient(clearanceHandlr))
{
if (webRequest.EmulateBrowser == true)
client.DefaultRequestHeaders.Add("User-Agent", BrowserUtil.ChromeUserAgent);
else
client.DefaultRequestHeaders.Add("User-Agent", "Jackett/" + configService.GetVersion());
HttpResponseMessage response = null;
using (var request = new HttpRequestMessage())
{
request.Headers.ExpectContinue = false;
@@ -116,6 +108,15 @@ namespace Jackett.Common.Utils.Clients
}
}
// The User-Agent can be set by the indexer (in the headers)
if (string.IsNullOrWhiteSpace(request.Headers.UserAgent.ToString()))
{
if (webRequest.EmulateBrowser == true)
request.Headers.UserAgent.ParseAdd(BrowserUtil.ChromeUserAgent);
else
request.Headers.UserAgent.ParseAdd("Jackett/" + configService.GetVersion());
}
if (!string.IsNullOrEmpty(webRequest.Referer))
request.Headers.Referrer = new Uri(webRequest.Referer);
@@ -144,6 +145,7 @@ namespace Jackett.Common.Utils.Clients
request.Method = HttpMethod.Get;
}
HttpResponseMessage response;
using (response = await client.SendAsync(request))
{
var result = new WebResult

View File

@@ -104,11 +104,6 @@ namespace Jackett.Common.Utils.Clients
request.Headers.ExpectContinue = false;
request.RequestUri = new Uri(webRequest.Url);
if (webRequest.EmulateBrowser == true)
request.Headers.UserAgent.ParseAdd(BrowserUtil.ChromeUserAgent);
else
request.Headers.UserAgent.ParseAdd("Jackett/" + configService.GetVersion());
// clear cookies from cookiecontainer
var oldCookies = cookies.GetCookies(request.RequestUri);
foreach (Cookie oldCookie in oldCookies)
@@ -135,6 +130,15 @@ namespace Jackett.Common.Utils.Clients
}
}
// The User-Agent can be set by the indexer (in the headers)
if (string.IsNullOrWhiteSpace(request.Headers.UserAgent.ToString()))
{
if (webRequest.EmulateBrowser == true)
request.Headers.UserAgent.ParseAdd(BrowserUtil.ChromeUserAgent);
else
request.Headers.UserAgent.ParseAdd("Jackett/" + configService.GetVersion());
}
if (!string.IsNullOrEmpty(webRequest.Referer))
request.Headers.Referrer = new Uri(webRequest.Referer);