From fa19e73e4b9f59f95ace39167894111bcfd387ff Mon Sep 17 00:00:00 2001 From: brettlangdon Date: Thu, 29 Feb 2024 10:34:23 -0500 Subject: [PATCH] dlhd: fix request headers --- src/dlhdhr/dlhd/__init__.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/dlhdhr/dlhd/__init__.py b/src/dlhdhr/dlhd/__init__.py index f3f00fc..1617cc4 100644 --- a/src/dlhdhr/dlhd/__init__.py +++ b/src/dlhdhr/dlhd/__init__.py @@ -21,13 +21,11 @@ class DLHDClient: _channels_last_fetch: float = 0 _base_urls: dict[DLHDChannel, (float, str)] _referers: dict[DLHDChannel, str] - _cookies: dict[str, str] def __init__(self): self._channels = {} self._base_urls = {} self._referers = {} - self._cookies = {} async def _log_request(self, request): if config.DEBUG: @@ -38,12 +36,24 @@ class DLHDClient: request = response.request print(f"Response event hook: {request.method} {request.url} - Status {response.status_code}") - self._cookies.update(response.cookies) - def _get_client(self, referer: str = ""): + parsed = urllib.parse.urlparse(referer) + origin = f"{parsed.scheme}://{parsed.netloc}" + referer = f"{parsed.scheme}://{parsed.netloc}/" + headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0", + "Origin": origin, "Referer": referer, + "Accept": "*/*", + "Accept-Language": "en-US,en;q=0.5", + "Sec-Fetch-Dest": "empty", + "Sec-Fetch-Mode": "cors", + "Sec-Fetch-Site": "cross-site", + "Sec-GPC": "1", + "Pragma": "no-cache", + "Cache-Control": "no-cache", + "TE": "trailers", } return httpx.AsyncClient( base_url=config.DLHD_BASE_URL, @@ -51,7 +61,6 @@ class DLHDClient: max_redirects=2, verify=True, timeout=8.0, - cookies=self._cookies, event_hooks={"request": [self._log_request], "response": [self._log_response]}, ) @@ -140,6 +149,7 @@ class DLHDClient: async def get_channel_key(self, channel: DLHDChannel, proxy_url: str) -> bytes: referer = await self.get_channel_referer(channel) + async with self._get_client(referer=referer) as client: res = await client.get(proxy_url) res.raise_for_status()