IWebClient: add EmulateBrowser flag

This commit is contained in:
kaso17
2017-08-11 16:52:58 +02:00
parent e079c90535
commit d03cbefa57
5 changed files with 8 additions and 6 deletions

View File

@@ -103,7 +103,7 @@ namespace Jackett.Utils.Clients
clearanceHandlr.InnerHandler = clientHandlr; clearanceHandlr.InnerHandler = clientHandlr;
using (var client = new HttpClient(clearanceHandlr)) using (var client = new HttpClient(clearanceHandlr))
{ {
if (webRequest.EmulateBrowser) if (webRequest.EmulateBrowser == true)
client.DefaultRequestHeaders.Add("User-Agent", BrowserUtil.ChromeUserAgent); client.DefaultRequestHeaders.Add("User-Agent", BrowserUtil.ChromeUserAgent);
else else
client.DefaultRequestHeaders.Add("User-Agent", "Jackett/" + configService.GetVersion()); client.DefaultRequestHeaders.Add("User-Agent", "Jackett/" + configService.GetVersion());

View File

@@ -95,7 +95,7 @@ namespace Jackett.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) if (webRequest.EmulateBrowser == true)
request.Headers.UserAgent.ParseAdd(BrowserUtil.ChromeUserAgent); request.Headers.UserAgent.ParseAdd(BrowserUtil.ChromeUserAgent);
else else
request.Headers.UserAgent.ParseAdd("Jackett/" + configService.GetVersion()); request.Headers.UserAgent.ParseAdd("Jackett/" + configService.GetVersion());

View File

@@ -18,6 +18,7 @@ namespace Jackett.Utils.Clients
protected IProcessService processService; protected IProcessService processService;
protected DateTime lastRequest = DateTime.MinValue; protected DateTime lastRequest = DateTime.MinValue;
protected TimeSpan requestDelayTimeSpan; protected TimeSpan requestDelayTimeSpan;
public bool EmulateBrowser = true;
public double requestDelay public double requestDelay
{ {
get { return requestDelayTimeSpan.TotalSeconds; } get { return requestDelayTimeSpan.TotalSeconds; }
@@ -41,6 +42,9 @@ namespace Jackett.Utils.Clients
async protected void DelayRequest(WebRequest request) async protected void DelayRequest(WebRequest request)
{ {
if (request.EmulateBrowser == null)
request.EmulateBrowser = EmulateBrowser;
if (requestDelay != 0) if (requestDelay != 0)
{ {
var timeElapsed = DateTime.Now - lastRequest; var timeElapsed = DateTime.Now - lastRequest;

View File

@@ -37,7 +37,7 @@ namespace Jackett.Utils.Clients
args.AppendFormat("--url \"{0}\" ", request.Url); args.AppendFormat("--url \"{0}\" ", request.Url);
if (request.EmulateBrowser) if (request.EmulateBrowser == true)
args.AppendFormat("-i -sS --user-agent \"{0}\" ", BrowserUtil.ChromeUserAgent); args.AppendFormat("-i -sS --user-agent \"{0}\" ", BrowserUtil.ChromeUserAgent);
else else
args.AppendFormat("-i -sS --user-agent \"{0}\" ", "Jackett/" + configService.GetVersion()); args.AppendFormat("-i -sS --user-agent \"{0}\" ", "Jackett/" + configService.GetVersion());

View File

@@ -14,7 +14,6 @@ namespace Jackett.Utils.Clients
PostData = new List<KeyValuePair<string, string>>(); PostData = new List<KeyValuePair<string, string>>();
Type = RequestType.GET; Type = RequestType.GET;
Headers = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase); Headers = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
EmulateBrowser = true;
} }
public WebRequest(string url) public WebRequest(string url)
@@ -23,7 +22,6 @@ namespace Jackett.Utils.Clients
Type = RequestType.GET; Type = RequestType.GET;
Url = url; Url = url;
Headers = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase); Headers = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
EmulateBrowser = true;
} }
public string Url { get; set; } public string Url { get; set; }
@@ -32,7 +30,7 @@ namespace Jackett.Utils.Clients
public string Referer { get; set; } public string Referer { get; set; }
public RequestType Type { get; set; } public RequestType Type { get; set; }
public string RawBody { get; set; } public string RawBody { get; set; }
public bool EmulateBrowser { get; set; } public bool? EmulateBrowser { get; set; }
public Encoding Encoding { get; set; } public Encoding Encoding { get; set; }
/// <summary> /// <summary>