Skip to content

Commit

Permalink
Fix rate limit issues for playlist downloading (bsmg#326)
Browse files Browse the repository at this point in the history
* Fix inconsistent use of UTC and local time, changed display to local time.
  • Loading branch information
Vyolex authored Apr 14, 2021
1 parent ab775ea commit 7788c25
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions ModAssistant/Classes/External Interfaces/BeatSaver.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ private static async Task<BeatSaverApiResponse> GetResponse(string url, bool sho

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);
}
Expand Down Expand Up @@ -240,7 +240,7 @@ public static async Task Download(string url, string output, int retries = 3)
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);
Expand Down Expand Up @@ -276,7 +276,7 @@ public class BeatSaverRatelimit
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)));
}
}

Expand Down

0 comments on commit 7788c25

Please sign in to comment.