mirror of
https://github.com/ThePhaseless/Byparr.git
synced 2025-03-15 09:50:20 +08:00
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
# https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/1954
|
|
# Fix for nodriver in .venv/lib/python3.11/site-packages/nodriver/core/browser.py
|
|
from __future__ import annotations
|
|
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
nodriver_path = Path(".venv/lib/python3.11/site-packages/nodriver/cdp/network.py")
|
|
|
|
|
|
new_cookie_partition_key = """\
|
|
if isinstance(json, str):
|
|
return cls(top_level_site=json, has_cross_site_ancestor=False)
|
|
elif isinstance(json_input, dict):
|
|
return cls(
|
|
top_level_site=str(json["topLevelSite"]),
|
|
has_cross_site_ancestor=bool(json["hasCrossSiteAncestor"]),
|
|
)
|
|
"""
|
|
|
|
logger = logging.getLogger(__name__)
|
|
handler = logging.StreamHandler()
|
|
logger.addHandler(handler)
|
|
logger.setLevel(logging.INFO)
|
|
logger.info(f"Fixing nodriver in {nodriver_path}")
|
|
# delete CookiePartitionKey declaration
|
|
with nodriver_path.open("r+") as f:
|
|
lines = f.readlines()
|
|
found_def = False
|
|
found_body = False
|
|
i = -1
|
|
while i < len(lines):
|
|
i += 1
|
|
line = lines[i]
|
|
strip_line = line.strip("\n")
|
|
if not found_def and line.startswith("class CookiePartitionKey:"):
|
|
logger.info(f"Found line {i}: {strip_line}")
|
|
found_def = True
|
|
continue
|
|
if found_def:
|
|
if line.startswith(" def from_json"):
|
|
logger.info(f"Found line {i}: {strip_line}")
|
|
found_body = True
|
|
continue
|
|
if found_body:
|
|
if line.startswith(("\t\t", " ")):
|
|
logger.info(f"Removing line {i}: {strip_line}")
|
|
lines.pop(i)
|
|
i -= 1
|
|
continue
|
|
else:
|
|
lines = lines[:i] + [new_cookie_partition_key] + lines[i:]
|
|
break
|
|
|
|
|
|
with nodriver_path.open("w") as f:
|
|
f.writelines(lines)
|