refactor: extract aiohttp client timeouts into named constants

This commit is contained in:
g0ldyy
2025-12-10 17:06:53 +01:00
parent 72825f1145
commit 1c8903d57e
4 changed files with 12 additions and 9 deletions
+3 -3
View File
@@ -2,6 +2,8 @@ import aiohttp
from comet.core.logger import logger
CATALOG_TIMEOUT = aiohttp.ClientTimeout(total=30)
class CinemataClient:
BASE_URL = "https://cinemeta-catalogs.strem.io"
@@ -28,9 +30,7 @@ class CinemataClient:
url = "/".join(url_parts) + f"/skip={skip}.json"
try:
async with self.session.get(
url, timeout=aiohttp.ClientTimeout(total=30)
) as response:
async with self.session.get(url, timeout=CATALOG_TIMEOUT) as response:
response.raise_for_status()
data = await response.json()
return data
+3 -1
View File
@@ -12,6 +12,8 @@ from comet.services.torrent_manager import (add_torrent_queue,
extract_torrent_metadata,
extract_trackers_from_magnet)
INDEXER_TIMEOUT = aiohttp.ClientTimeout(total=settings.INDEXER_MANAGER_TIMEOUT)
class JackettScraper(BaseScraper):
def __init__(self, manager, session: aiohttp.ClientSession, url: str):
@@ -88,7 +90,7 @@ class JackettScraper(BaseScraper):
try:
response = await self.session.get(
f"{self.url}/api/v2.0/indexers/all/results?apikey={settings.JACKETT_API_KEY}&Query={query}&Tracker[]={indexer}",
timeout=aiohttp.ClientTimeout(total=settings.INDEXER_MANAGER_TIMEOUT),
timeout=INDEXER_TIMEOUT,
)
response = await response.json()
return response.get("Results", [])
+4 -4
View File
@@ -12,6 +12,8 @@ from comet.services.torrent_manager import (add_torrent_queue,
extract_torrent_metadata,
extract_trackers_from_magnet)
INDEXER_TIMEOUT = aiohttp.ClientTimeout(total=settings.INDEXER_MANAGER_TIMEOUT)
class ProwlarrScraper(BaseScraper):
def __init__(self, manager, session: aiohttp.ClientSession, url: str):
@@ -99,7 +101,7 @@ class ProwlarrScraper(BaseScraper):
get_indexers = await self.session.get(
f"{self.url}/api/v1/indexer",
headers={"X-Api-Key": settings.PROWLARR_API_KEY},
timeout=aiohttp.ClientTimeout(total=settings.INDEXER_MANAGER_TIMEOUT),
timeout=INDEXER_TIMEOUT,
)
get_indexers = await get_indexers.json()
@@ -117,9 +119,7 @@ class ProwlarrScraper(BaseScraper):
self.session.get(
f"{self.url}/api/v1/search?query={query}&indexerIds={'&indexerIds='.join(str(indexer_id) for indexer_id in indexers_id)}&type=search",
headers={"X-Api-Key": settings.PROWLARR_API_KEY},
timeout=aiohttp.ClientTimeout(
total=settings.INDEXER_MANAGER_TIMEOUT
),
timeout=INDEXER_TIMEOUT,
)
)
+2 -1
View File
@@ -19,6 +19,7 @@ from comet.core.models import database, settings
from comet.utils.parsing import default_dump, is_video
INFO_HASH_PATTERN = re.compile(r"btih:([a-fA-F0-9]{40}|[a-zA-Z0-9]{32})")
TORRENT_TIMEOUT = aiohttp.ClientTimeout(total=settings.GET_TORRENT_TIMEOUT)
def extract_trackers_from_magnet(magnet_uri: str):
@@ -34,7 +35,7 @@ def extract_trackers_from_magnet(magnet_uri: str):
async def download_torrent(session: aiohttp.ClientSession, url: str):
try:
timeout = aiohttp.ClientTimeout(total=settings.GET_TORRENT_TIMEOUT)
timeout = TORRENT_TIMEOUT
async with session.get(url, allow_redirects=False, timeout=timeout) as response:
if response.status == 200:
return (await response.read(), None, None)