Added delay functionality for rate-limits

This commit is contained in:
glax
2023-05-18 17:18:41 +02:00
parent ae29b8f341
commit 93bb8ef6ee
2 changed files with 17 additions and 5 deletions

View File

@ -24,9 +24,21 @@ public abstract class Connector
internal class DownloadClient
{
private TimeSpan requestSpeed;
private DateTime lastRequest;
static readonly HttpClient client = new HttpClient();
public RequestResult GetPage(string url)
public DownloadClient(uint delay)
{
this.requestSpeed = TimeSpan.FromMilliseconds(delay);
this.lastRequest = DateTime.Now.Subtract(requestSpeed);
}
public RequestResult MakeRequest(string url)
{
while((DateTime.Now - lastRequest) < requestSpeed)
Thread.Sleep(10);
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, url);
HttpResponseMessage response = client.Send(requestMessage);
Stream resultString = response.IsSuccessStatusCode ? response.Content.ReadAsStream() : Stream.Null;