Compare commits

...

2 Commits

Author SHA1 Message Date
Hazel Noack
ec24193a72 retries if connection fails 2025-06-11 14:04:12 +02:00
Hazel Noack
ae997fd0bf implemented silent connection which should not throw any errors 2025-06-11 13:53:53 +02:00
2 changed files with 17 additions and 4 deletions

View File

@ -1,7 +1,7 @@
import argparse
import logging
from .connections import Connection
from .connections import Connection, SilentConnection
from . import cache
@ -9,7 +9,7 @@ def main():
c = Connection(cache_enable=False, request_delay=1.5, rate_limit_status_codes={200})
c.generate_headers()
print(c.get("http://ip.org/"))
print(c.get("http://www.does_not_exist.xyz"))
def cli():

View File

@ -118,10 +118,15 @@ class Connection:
log.info(f"waiting {to_wait} at attempt {attempt}: {url}")
time.sleep(to_wait)
response = self.session.send(request.prepare())
self.last_request = time.time()
try:
response = self.session.send(request.prepare())
except requests.ConnectionError:
if self.max_retries is not None and self.max_retries <= attempt:
raise
return self.send_request(request, attempt=attempt+1)
if not self.validate_response(response):
if self.max_retries is not None and self.max_retries <= attempt:
raise requests.HTTPError(
@ -151,3 +156,11 @@ class Connection:
json=json,
**kwargs,
))
class SilentConnection(Connection):
def send_request(self, request: requests.Request, attempt: int = 0) -> Optional[requests.Response]:
try:
return super().send_request(request, attempt)
except requests.HTTPError as e:
log.warning(str(e))