Skip to content

Commit cb9e26f

Browse files
committed
limiter can redo check if the rate is backed off
1 parent 2460545 commit cb9e26f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

rhdndat/__main__.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -621,8 +621,12 @@ def get_romhacking_data(possible_metadata, session):
621621
metadata = []
622622
language = None
623623
version_hacks = read_version_file(possible_metadata)
624-
625-
for (version, url) in version_hacks:
624+
#loop that can iterate on the same place with a continue without next
625+
sentinel = object()
626+
iterobj = iter(version_hacks)
627+
x = next(iterobj, sentinel)
628+
while x is not sentinel:
629+
(version, url) = x
626630
try:
627631
response = session.get(url, headers={'User-Agent': 'Mozilla/5.0'})
628632
page = response.text
@@ -668,12 +672,15 @@ def get_romhacking_data(possible_metadata, session):
668672

669673
if remote_version != version:
670674
warn(f'warn: local \'{version}\' {link(possible_metadata.parent.as_uri(),"(open dir)")} != remote \'{remote_version}\' {link(url, "(open url)")} versions')
675+
#advance loop, most exceptions exit the loop
676+
x = next(iterobj, sentinel)
671677
except (requests.exceptions.RequestException, AttributeError) as e:
672678
if response.status_code == 403:
673679
error("error: blocked by cloudflare (403 Forbidden)")
674680
elif response.status_code == 429:
675681
error("error: rate limited by cloudflare (429 Too Many Requests)")
676-
continue #have rate limiter not worth it to stop everythibg in this case
682+
#doesnt advance the loop, returns to retry later (the session has a limiter already)
683+
continue
677684
raise VersionFileURLError(possible_metadata, url)
678685
return (metadata, language)
679686

0 commit comments

Comments
 (0)