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="Autofac" Version="5.2.0" />
<PackageReference Include="AutoMapper" Version="8.1.1" /> <PackageReference Include="AutoMapper" Version="8.1.1" />
<PackageReference Include="BencodeNET" Version="3.1.4" /> <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="CommandLineParser" Version="2.8.0" />
<PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" /> <PackageReference Include="DotNet4.SocksProxy" Version="1.4.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" /> <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)); 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)) using (var clearanceHandlr = new ClearanceHandler(serverConfig.FlareSolverrUrl))
{ {
clearanceHandlr.UserAgent = userAgent; clearanceHandlr.UserAgent = BrowserUtil.ChromeUserAgent;
clearanceHandlr.MaxTimeout = 50000; clearanceHandlr.MaxTimeout = 50000;
using (var clientHandlr = new HttpClientHandler using (var clientHandlr = new HttpClientHandler
{ {
@@ -94,12 +92,6 @@ namespace Jackett.Common.Utils.Clients
clearanceHandlr.InnerHandler = clientHandlr; clearanceHandlr.InnerHandler = clientHandlr;
using (var client = new HttpClient(clearanceHandlr)) 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()) using (var request = new HttpRequestMessage())
{ {
request.Headers.ExpectContinue = false; 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)) if (!string.IsNullOrEmpty(webRequest.Referer))
request.Headers.Referrer = new Uri(webRequest.Referer); request.Headers.Referrer = new Uri(webRequest.Referer);
@@ -144,6 +145,7 @@ namespace Jackett.Common.Utils.Clients
request.Method = HttpMethod.Get; request.Method = HttpMethod.Get;
} }
HttpResponseMessage response;
using (response = await client.SendAsync(request)) using (response = await client.SendAsync(request))
{ {
var result = new WebResult var result = new WebResult

View File

@@ -104,11 +104,6 @@ namespace Jackett.Common.Utils.Clients
request.Headers.ExpectContinue = false; request.Headers.ExpectContinue = false;
request.RequestUri = new Uri(webRequest.Url); 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 // clear cookies from cookiecontainer
var oldCookies = cookies.GetCookies(request.RequestUri); var oldCookies = cookies.GetCookies(request.RequestUri);
foreach (Cookie oldCookie in oldCookies) 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)) if (!string.IsNullOrEmpty(webRequest.Referer))
request.Headers.Referrer = new Uri(webRequest.Referer); request.Headers.Referrer = new Uri(webRequest.Referer);