diff --git a/py/services/downloader.py b/py/services/downloader.py index 20fe5851..cfac9bf9 100644 --- a/py/services/downloader.py +++ b/py/services/downloader.py @@ -23,6 +23,7 @@ from typing import Optional, Dict, Tuple, Callable, Union, Awaitable from ..services.settings_manager import get_settings_manager from .connectivity_guard import ( OFFLINE_COOLDOWN_ERROR, + OFFLINE_FRIENDLY_MESSAGE, ConnectivityGuard, ) from .errors import RateLimitError @@ -803,9 +804,8 @@ class Downloader: Tuple[bool, Union[bytes, str], Optional[Dict]]: (success, content or error message, response headers if requested) """ guard = await ConnectivityGuard.get_instance() - destination = self._guard_destination(url) - if guard.should_block_request(destination): - return False, OFFLINE_COOLDOWN_ERROR, None + if guard.should_block_request(): + return False, OFFLINE_FRIENDLY_MESSAGE, None try: session = await self.session @@ -849,9 +849,9 @@ class Downloader: except Exception as e: if guard.is_network_unreachable_error(e): - guard.register_network_failure(e, destination) - if guard.should_block_request(destination): - return False, OFFLINE_COOLDOWN_ERROR, None + guard.register_network_failure(e) + if guard.should_block_request(): + return False, OFFLINE_FRIENDLY_MESSAGE, None logger.debug("Network unavailable during memory download: %s", e) return False, str(e), None logger.error(f"Error downloading to memory from {url}: {e}") diff --git a/tests/services/test_connectivity_guard.py b/tests/services/test_connectivity_guard.py index 712a9f6e..31beb525 100644 --- a/tests/services/test_connectivity_guard.py +++ b/tests/services/test_connectivity_guard.py @@ -6,6 +6,7 @@ import pytest from py.services.connectivity_guard import ( OFFLINE_COOLDOWN_ERROR, + OFFLINE_FRIENDLY_MESSAGE, ConnectivityGuard, ) from py.services.downloader import Downloader @@ -93,7 +94,7 @@ async def test_downloader_short_circuits_all_request_helpers_during_cooldown(): ok, payload, headers = await downloader.download_to_memory(f"https://{destination}") assert ok is False - assert payload == OFFLINE_COOLDOWN_ERROR + assert payload == OFFLINE_FRIENDLY_MESSAGE assert headers is None ok, payload = await downloader.get_response_headers(f"https://{destination}")