Fix rate limit issues for playlist downloading (#326)

* Fix inconsistent use of UTC and local time, changed display to local time.
This commit is contained in:
Vyolex 2021-04-15 00:09:55 +02:00 committed by GitHub
parent ab775ea496
commit 7788c2573c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -89,7 +89,7 @@ namespace ModAssistant.API
if ((int)resp.StatusCode == 429)
{
Utils.SetMessage($"{string.Format((string)Application.Current.FindResource("OneClick:RatelimitHit"), response.ratelimit.ResetTime)}");
Utils.SetMessage($"{string.Format((string)Application.Current.FindResource("OneClick:RatelimitHit"), response.ratelimit.ResetTime.ToLocalTime())}");
await response.ratelimit.Wait();
return await GetResponse(url, showNotification, retries - 1);
}
@ -240,7 +240,7 @@ namespace ModAssistant.API
if ((int)resp.StatusCode == 429)
{
var ratelimit = GetRatelimit(resp.Headers);
Utils.SetMessage($"{string.Format((string)Application.Current.FindResource("OneClick:RatelimitHit"), ratelimit.ResetTime)}");
Utils.SetMessage($"{string.Format((string)Application.Current.FindResource("OneClick:RatelimitHit"), ratelimit.ResetTime.ToLocalTime())}");
await ratelimit.Wait();
await Download(url, output, retries - 1);
@ -276,7 +276,7 @@ namespace ModAssistant.API
public DateTime ResetTime { get; set; }
public async Task Wait()
{
await Task.Delay(new TimeSpan(ResetTime.Ticks - DateTime.Now.Ticks));
await Task.Delay(new TimeSpan(Math.Max(ResetTime.Ticks - DateTime.UtcNow.Ticks, 0)));
}
}