From f6bb22e6c3602d30e55fc9eeb140b964552b8d18 Mon Sep 17 00:00:00 2001 From: Josemando Sobral Date: Sun, 2 Feb 2025 18:48:34 -0300 Subject: [PATCH] adding rate limit --- getmyancestors/classes/session.py | 8 ++++++++ pyproject.toml | 2 +- requirements.txt | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/getmyancestors/classes/session.py b/getmyancestors/classes/session.py index 03fa619..40a55e6 100644 --- a/getmyancestors/classes/session.py +++ b/getmyancestors/classes/session.py @@ -7,6 +7,8 @@ import webbrowser import requests from fake_useragent import UserAgent +from requests_ratelimiter import LimiterAdapter + # local imports from getmyancestors.classes.translation import translations @@ -40,6 +42,12 @@ class Session(requests.Session): self.fid = self.lang = self.display_name = None self.counter = 0 self.headers = {"User-Agent": UserAgent().firefox} + + # Apply a rate-limit (5 requests per second) to all requests + adapter = LimiterAdapter(per_second=5) + self.mount('http://', adapter) + self.mount('https://', adapter) + self.login() @property diff --git a/pyproject.toml b/pyproject.toml index b1492b2..58e1571 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ dependencies = [ "diskcache==5.6.3", "requests==2.32.3", "fake-useragent==2.0.3", + "requests-ratelimiter==0.7.0" ] dynamic = ["version", "readme"] @@ -37,4 +38,3 @@ getmyancestors = ["fstogedcom.png"] getmyancestors = "getmyancestors.getmyancestors:main" mergemyancestors = "getmyancestors.mergemyancestors:main" fstogedcom = "getmyancestors.fstogedcom:main" - diff --git a/requirements.txt b/requirements.txt index c031354..b9b294b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ babelfish==0.6.1 diskcache==5.6.3 requests==2.32.3 fake-useragent==2.0.3 +requests-ratelimiter==0.7.0 -- 2.52.0