From fff38fa99480dce08486e9e4bb509dc46b4ec4fa Mon Sep 17 00:00:00 2001 From: Iain Learmonth Date: Sun, 12 Mar 2023 12:28:29 +0000 Subject: [PATCH] feat: add timeouts to all requests requests --- app/models/activity.py | 2 +- app/terraform/block/block_scriptzteam.py | 3 ++- app/terraform/block/bridge_dnsc.py | 3 ++- app/terraform/block/bridge_roskomsvoboda.py | 2 +- app/terraform/block_external.py | 2 +- app/terraform/block_ooni.py | 2 +- app/terraform/block_roskomsvoboda.py | 3 ++- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/models/activity.py b/app/models/activity.py index d89bcd5..3ad5124 100644 --- a/app/models/activity.py +++ b/app/models/activity.py @@ -66,4 +66,4 @@ class Webhook(AbstractConfiguration): else: # Matrix as default data = {"body": text} - requests.post(self.url, json=data) + requests.post(self.url, json=data, timeout=30) diff --git a/app/terraform/block/block_scriptzteam.py b/app/terraform/block/block_scriptzteam.py index 86fb874..94e853b 100644 --- a/app/terraform/block/block_scriptzteam.py +++ b/app/terraform/block/block_scriptzteam.py @@ -14,7 +14,8 @@ class BlockBridgeScriptzteamAutomation(BlockBridgelinesAutomation): def fetch(self) -> None: r = requests.get( - "https://raw.githubusercontent.com/scriptzteam/Tor-Bridges-Collector/main/bridges-obfs4") + "https://raw.githubusercontent.com/scriptzteam/Tor-Bridges-Collector/main/bridges-obfs4", + timeout=60) r.encoding = "utf-8" contents = r.text self._lines = contents.splitlines() diff --git a/app/terraform/block/bridge_dnsc.py b/app/terraform/block/bridge_dnsc.py index 2595155..8dcc5ed 100644 --- a/app/terraform/block/bridge_dnsc.py +++ b/app/terraform/block/bridge_dnsc.py @@ -20,7 +20,8 @@ class BlockBridgeDnscAutomation(BlockBridgeAutomation): def fetch(self) -> None: response = requests.get(DOWNLOAD_URL, headers={"User-Agent": "Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) " - "Gecko/20100101 Firefox/10.0"}) + "Gecko/20100101 Firefox/10.0"}, + timeout=60) self._content = BytesIO(response.content) def parse(self) -> None: diff --git a/app/terraform/block/bridge_roskomsvoboda.py b/app/terraform/block/bridge_roskomsvoboda.py index aa52401..96b7dca 100644 --- a/app/terraform/block/bridge_roskomsvoboda.py +++ b/app/terraform/block/bridge_roskomsvoboda.py @@ -13,7 +13,7 @@ class BlockBridgeRoskomsvobodaAutomation(BlockBridgeAutomation): _data: Any def fetch(self) -> None: - self._data = requests.get("https://reestr.rublacklist.net/api/v3/ips/").json() + self._data = requests.get("https://reestr.rublacklist.net/api/v3/ips/", timeout=180).json() def parse(self) -> None: self.ips.extend(self._data) diff --git a/app/terraform/block_external.py b/app/terraform/block_external.py index 2e6b870..e47c77f 100644 --- a/app/terraform/block_external.py +++ b/app/terraform/block_external.py @@ -16,7 +16,7 @@ class BlockExternalAutomation(BlockMirrorAutomation): def fetch(self) -> None: user_agent = {'User-agent': 'BypassCensorship/1.0'} - page = requests.get(app.config['EXTERNAL_CHECK_URL'], headers=user_agent) + page = requests.get(app.config['EXTERNAL_CHECK_URL'], headers=user_agent, timeout=30) self._content = page.content def parse(self) -> None: diff --git a/app/terraform/block_ooni.py b/app/terraform/block_ooni.py index 6e8f4fb..3fdeb05 100644 --- a/app/terraform/block_ooni.py +++ b/app/terraform/block_ooni.py @@ -22,7 +22,7 @@ def check_origin(domain_name: str) -> Dict[str, Any]: def _check_origin(api_url: str, result: Dict[str, Any]) -> Dict[str, Any]: print(f"Processing {api_url}") - req = requests.get(api_url).json() + req = requests.get(api_url, timeout=30).json() if 'results' not in req or not req['results']: return result for r in req['results']: diff --git a/app/terraform/block_roskomsvoboda.py b/app/terraform/block_roskomsvoboda.py index faded33..29b6162 100644 --- a/app/terraform/block_roskomsvoboda.py +++ b/app/terraform/block_roskomsvoboda.py @@ -23,7 +23,8 @@ class BlockRoskomsvobodaAutomation(BlockMirrorAutomation): _data: Any def fetch(self) -> None: - self._data = requests.get("https://reestr.rublacklist.net/api/v3/domains/").json() + self._data = requests.get("https://reestr.rublacklist.net/api/v3/domains/", + timeout=180).json() def parse(self) -> None: self.patterns.extend(["https://" + pattern for pattern in self._data])