f
This commit is contained in:
@@ -16,7 +16,8 @@ from urllib.parse import urlparse
|
||||
|
||||
import requests
|
||||
|
||||
from API.HTTP import HTTPClient, get_requests_verify_value
|
||||
from API.HTTP import HTTPClient
|
||||
from API.requests_client import get_requests_session
|
||||
from ProviderCore.base import Provider, SearchResult
|
||||
from SYS.utils import sanitize_filename
|
||||
from SYS.cli_syntax import get_field, get_free_text, parse_query
|
||||
@@ -27,8 +28,6 @@ from Provider.metadata_provider import (
|
||||
)
|
||||
from SYS.utils import unique_path
|
||||
|
||||
# Resolve lazily to avoid import-time module checks (prevents debugger first-chance noise)
|
||||
_ARCHIVE_VERIFY_VALUE = None # will be resolved on first session creation
|
||||
_DEFAULT_ARCHIVE_SCALE = 4
|
||||
_QUALITY_TO_ARCHIVE_SCALE = {
|
||||
"high": 2,
|
||||
@@ -38,12 +37,7 @@ _QUALITY_TO_ARCHIVE_SCALE = {
|
||||
|
||||
|
||||
def _create_archive_session() -> requests.Session:
|
||||
session = requests.Session()
|
||||
global _ARCHIVE_VERIFY_VALUE
|
||||
if _ARCHIVE_VERIFY_VALUE is None:
|
||||
_ARCHIVE_VERIFY_VALUE = get_requests_verify_value()
|
||||
session.verify = _ARCHIVE_VERIFY_VALUE
|
||||
return session
|
||||
return get_requests_session()
|
||||
|
||||
try:
|
||||
from Crypto.Cipher import AES # type: ignore
|
||||
@@ -590,10 +584,9 @@ class OpenLibrary(Provider):
|
||||
if not ident:
|
||||
return False, "no-archive-id"
|
||||
try:
|
||||
resp = requests.get(
|
||||
resp = get_requests_session().get(
|
||||
f"https://archive.org/metadata/{ident}",
|
||||
timeout=8,
|
||||
verify=_ARCHIVE_VERIFY_VALUE,
|
||||
)
|
||||
resp.raise_for_status()
|
||||
data = resp.json() if resp is not None else {}
|
||||
@@ -804,10 +797,9 @@ class OpenLibrary(Provider):
|
||||
"""Check for a directly downloadable original PDF in Archive.org metadata."""
|
||||
try:
|
||||
metadata_url = f"https://archive.org/metadata/{book_id}"
|
||||
response = requests.get(
|
||||
response = get_requests_session().get(
|
||||
metadata_url,
|
||||
timeout=6,
|
||||
verify=_ARCHIVE_VERIFY_VALUE,
|
||||
)
|
||||
response.raise_for_status()
|
||||
metadata = response.json()
|
||||
@@ -822,11 +814,10 @@ class OpenLibrary(Provider):
|
||||
pdf_url = (
|
||||
f"https://archive.org/download/{book_id}/{filename.replace(' ', '%20')}"
|
||||
)
|
||||
check_response = requests.head(
|
||||
check_response = get_requests_session().head(
|
||||
pdf_url,
|
||||
timeout=4,
|
||||
allow_redirects=True,
|
||||
verify=_ARCHIVE_VERIFY_VALUE,
|
||||
)
|
||||
if check_response.status_code == 200:
|
||||
return True, pdf_url
|
||||
|
||||
Reference in New Issue
Block a user