implemented max retries

This commit is contained in:
Hazel Noack 2025-06-11 13:50:45 +02:00
parent 6743b939ad
commit 593c975418

View File

@ -20,6 +20,7 @@ class Connection:
additional_delay_per_try: float = 1,
error_status_codes: Optional[Set[int]] = None,
rate_limit_status_codes: Optional[Set[int]] = None,
max_retries: Optional[int] = 5,
) -> None:
self.session = session if session is not None else requests.Session()
@ -56,6 +57,8 @@ class Connection:
509, # Bandwidth Limit Exceeded
}
self.max_retries = max_retries
def generate_headers(self, referer: Optional[str] = None):
headers = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:139.0) Gecko/20100101 Firefox/139.0",
@ -119,8 +122,12 @@ class Connection:
self.last_request = time.time()
if not self.validate_response(response):
if self.max_retries is not None and self.max_retries <= attempt:
raise requests.HTTPError(
f"Max retries exceeded, server is rate limiting {response.status_code}: {response.reason}",
response=response
)
return self.send_request(request, attempt=attempt+1)
if self.cache_enable: