Files
leetify-data/src/leetify/core.py

26 lines
755 B
Python

from ratelimit.decorators import sleep_and_retry
import requests
from ratelimit import limits, RateLimitException
from backoff import expo, on_exception
class Leetify:
api_base_url = "https://api.leetify.com/api"
profile_base_url = f"{api_base_url}/profile"
match_base_url = f"{api_base_url}/games"
@on_exception(expo, Exception, max_tries=3)
@sleep_and_retry
@limits(1, 5)
def __get_page(self, url: str) -> dict:
resp = requests.get(url)
return resp.json()
def get_profile(self, id: str) -> dict:
url = f"{self.profile_base_url}/{id}"
return self.__get_page(url)
def get_match(self, id: str) -> dict:
url = f"{self.match_base_url}/{id}"
return self.__get_page(url)