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) 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(); await response.ratelimit.Wait();
return await GetResponse(url, showNotification, retries - 1); return await GetResponse(url, showNotification, retries - 1);
} }
@ -240,7 +240,7 @@ namespace ModAssistant.API
if ((int)resp.StatusCode == 429) if ((int)resp.StatusCode == 429)
{ {
var ratelimit = GetRatelimit(resp.Headers); 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 ratelimit.Wait();
await Download(url, output, retries - 1); await Download(url, output, retries - 1);
@ -276,7 +276,7 @@ namespace ModAssistant.API
public DateTime ResetTime { get; set; } public DateTime ResetTime { get; set; }
public async Task Wait() 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)));
} }
} }