From d08fbe887f3ec006ac4d50f356092044906e15bc Mon Sep 17 00:00:00 2001 From: Andrei Stoica Date: Mon, 29 Jan 2024 20:18:16 -0500 Subject: [PATCH] added ratelimiting --- requirments.txt | 4 +++- src/leetify/core.py | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/requirments.txt b/requirments.txt index a93ea82..224f248 100644 --- a/requirments.txt +++ b/requirments.txt @@ -1,3 +1,5 @@ pytest click -psycopg2 +psycopg2-binary +ratelimit +backoff diff --git a/src/leetify/core.py b/src/leetify/core.py index 29420de..9f69ecb 100644 --- a/src/leetify/core.py +++ b/src/leetify/core.py @@ -1,4 +1,7 @@ +from ratelimit.decorators import sleep_and_retry import requests +from ratelimit import limits, RateLimitException +from backoff import expo, on_exception class Leetify: @@ -6,6 +9,8 @@ class Leetify: profile_base_url = f"{api_base_url}/profile" match_base_url = f"{api_base_url}/games" + @sleep_and_retry + @limits(1, 5) def __get_page(self, url: str) -> dict: resp = requests.get(url) return resp.json()