diff --git a/services/browser_service.py b/services/browser_service.py index 92bd67a..4f38bd7 100644 --- a/services/browser_service.py +++ b/services/browser_service.py @@ -20,6 +20,29 @@ from services.socks5_to_http_proxy import Socks5ProxyPool logger = logging.getLogger(__name__) +def _patch_camoufox(): + """Патчит generate_fingerprint чтобы убирать лишние constraints при ошибке.""" + import camoufox.fingerprints as _fp + _orig = _fp.generate_fingerprint + + def _patched(**config): + try: + return _orig(**config) + except ValueError: + # Убираем screen — он чаще всего вызывает конфликт с locale + config.pop("screen", None) + try: + return _orig(**config) + except ValueError: + # Оставляем только locale без остальных ограничений + minimal = {k: v for k, v in config.items() if k == "locale"} + return _orig(**minimal) + + _fp.generate_fingerprint = _patched + +_patch_camoufox() + + def _locale_for_ip(ip: str) -> str: """Возвращает BCP47 locale без script-тега по реальному IP прокси.""" try: