mirror of
https://github.com/ThePhaseless/Byparr.git
synced 2025-03-15 01:40:21 +08:00
added script that fixes nodriver
This commit is contained in:
parent
798fa5e0b9
commit
7029fa8f8f
57
fix_nodriver.py
Normal file
57
fix_nodriver.py
Normal file
@ -0,0 +1,57 @@
|
||||
# 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)
|
Loading…
x
Reference in New Issue
Block a user