Skip to content

Commit

Permalink
note_scraper: Fix rate limiting
Browse files Browse the repository at this point in the history
  • Loading branch information
cebtenzzre committed Jan 26, 2022
1 parent 6ba4c14 commit 3582d8d
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions note_scraper.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import time
import traceback
import warnings
from datetime import datetime

from bs4 import BeautifulSoup

Expand Down Expand Up @@ -118,11 +119,14 @@ def ratelimit_sleep(self, headers):
return False

try:
sleep_dur = float(reset)
reset_time = int(reset)
except ValueError:
log(LogLevel.ERROR, self.lasturl, "Expected numerical X-Rate-Limit-Reset, got '{}'".format(reset))
log(LogLevel.ERROR, self.lasturl, "Expected integer X-Rate-Limit-Reset, got '{}'".format(reset))
return False

# This header is apparently a unix timestamp
sleep_dur = (datetime.fromtimestamp(reset_time) - datetime.now()).total_seconds()

if sleep_dur < 0:
log(LogLevel.WARN, self.lasturl, 'Warning: X-Rate-Limit-Reset is {} seconds in the past'.format(-sleep_dur))
return True
Expand All @@ -131,7 +135,7 @@ def ratelimit_sleep(self, headers):
'Refusing to sleep for {} minutes, giving up'.format(round(sleep_dur / 60)))
return False

log(LogLevel.WARN, self.lasturl, 'Rate limited, sleeping for {} seconds as requested'.format(sleep_dur))
log(LogLevel.WARN, self.lasturl, 'Rate limited, sleeping for {:.2f} seconds as requested'.format(sleep_dur))
time.sleep(sleep_dur)
return True

Expand Down

0 comments on commit 3582d8d

Please sign in to comment.