This commit is contained in:
Georges-Antoine Assi
2026-05-23 19:07:43 -04:00
parent aec1c4ed33
commit ca6ecff4a0
2 changed files with 11 additions and 9 deletions

View File

@@ -106,6 +106,7 @@ def _normalize_search_term(
def strip_sensitive_query_params(
url: str, sensitive_keys: set[str] = SENSITIVE_KEYS
) -> str:
"""Remove sensitive query parameters from a URL."""
parsed = urlparse(url)
qsl = parse_qsl(parsed.query, keep_blank_values=True)
@@ -120,8 +121,10 @@ def restore_sensitive_query_params(url: str, params: dict[str, str]) -> str:
"""Add back key/value pairs previously stripped by strip_sensitive_query_params."""
parsed = urlparse(url)
qsl = parse_qsl(parsed.query, keep_blank_values=True)
existing = {k.lower() for k in params}
filtered = [(k, v) for k, v in qsl if k.lower() not in existing]
new_query = urlencode(filtered + list(params.items()))
return urlunparse(parsed._replace(query=new_query))

View File

@@ -36,17 +36,16 @@ SENSITIVE_KEYS = {"ssid", "sspassword"}
def add_ss_auth_to_url(url: str) -> str:
"""Re-add SS user credentials to a media URL at download time (never stored)."""
creds = {
k: v
for k, v in {
if not SCREENSCRAPER_USER or not SCREENSCRAPER_PASSWORD:
return url
return restore_sensitive_query_params(
url,
{
"ssid": SCREENSCRAPER_USER,
"sspassword": SCREENSCRAPER_PASSWORD,
}.items()
if v
}
if not creds:
return url
return restore_sensitive_query_params(url, creds)
},
)
def get_preferred_regions(rom: Rom | None = None) -> list[str]: