fix(JOYNAT): fix GraphQL variables encoding

This commit is contained in:
2026-03-02 09:48:42 +01:00
parent e950d53fe1
commit 451969150e
2 changed files with 11 additions and 3 deletions

View File

@@ -416,7 +416,7 @@ class JOYNAT(Service):
self, *, challenge: bytes, title: Union[Movies, Series], track: AnyTrack,
) -> Optional[Union[bytes, str]]:
"""Obtain a Widevine license for the given track."""
license_url = getattr(track, 'data', {}).get('license_url') if track.data else None
license_url = track.data.get('license_url')
if not license_url:
raise ValueError("No license_url in track.data.")
@@ -441,7 +441,7 @@ class JOYNAT(Service):
},
params={
'operationName': operation_name,
'variables': json.dumps(variables).encode(),
'variables': json.dumps(variables),
'extensions': json.dumps({
'persistedQuery': {'version': 1, 'sha256Hash': persisted_query_hash}
}).encode()
@@ -451,6 +451,9 @@ class JOYNAT(Service):
response_data = response.json()
if response_data.get("errors"):
raise ValueError(f"GraphQL errors for '{operation_name}': {response_data['errors']}")
if 'data' not in response_data:
self.log.error(f"GraphQL response for '{operation_name}' missing 'data' field.")
raise ValueError(f"Invalid GraphQL response for '{operation_name}'.")

View File

@@ -437,8 +437,13 @@ class RTLP(Service):
response.raise_for_status()
response_data = response.json()
if response_data.get("errors"):
raise ValueError(f"GraphQL errors for '{operation_name}': {response_data['errors']}")
if 'data' not in response_data:
raise ValueError(f"Invalid GraphQL response for '{operation_name}': missing 'data' field.")
self.log.error(f"GraphQL response for '{operation_name}' missing 'data' field.")
raise ValueError(f"Invalid GraphQL response for '{operation_name}'.")
return response_data['data']