Commit Graph
12 Commits
Author SHA1 Message Date
protokeyandClaude Opus 5.5 0ae5b0c83f test: юнит-тесты и сквозные тесты с Chrome (#21)
- tests/unit (make test, без браузера, ~5 с): схемы и валидация, /v1/solve с подменённым
  движком (коды ошибок, слоты, сессии, UA и cookies профиля, маскирование секретов в логах),
  действия, оркестратор антибота, профиль и отпечаток
- tests/browser (make test-browser, в Docker): example.com, UA один раз и замена cookies
  на httpbin, применение и стабильность отпечатка, прохождение Cloudflare
- requirements-dev.txt, make sync-dev; Makefile вызывает pip через python -m pip
  (у перенесённого .venv битый shebang bin/pip)
- fix: в CloudflareSolver вызов bounding_box() у неожиданной корутины — ветка без iframe
  всегда падала с AttributeError

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 18:10:21 +04:00
protokeyandClaude Opus 5.5 437ea27be7 fix: слоты, безопасность, единый формат ответа и валидация
- слоты браузеров: asyncio.Semaphore, размер из BROWSER_SLOTS, при нехватке — 503 + Retry-After;
  устранена утечка счётчика при отказе (#12, #49)
- session_id принимается только как UUID, путь профиля проверяется (#5)
- секреты клиента в логах маскируются, полный дамп — только на DEBUG (#6)
- ответ: status всегда "ok"/"err", поле code (no_slots / request_failed / challenge_failed /
  action_failed), response_model (#7)
- непройденный антибот → challenge_failed, действия не выполняются (#8)
- таймауты провайдеров в мс вынесены в константы; detect переживает навигацию посреди
  проверки; пауза между неудачными solve вместо холостого цикла (#9)
- обязательные поля действий и формат прокси проверяются схемой → 422 до запуска браузера (#13)
- прокси необязателен (#15)
- user_agent сохраняется в профиле сессии и реально передаётся в браузер (#16)
- duration_ms у действий и у запроса (#18), опция screenshot (#19)
- общий конфиг логирования (LOG_LEVEL), print → логгер, CloudflareProvider,
  удалён cached_persistent, GET /health (#22)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:52:12 +04:00
protokey dc441e60ef fix: повышение стабильности обхода cf_turnstile 2026-09-23 16:48:55 +04:00
protokey 405e5ed2d0 chore: настройка определения что мы на странице cf_turnstile 2026-09-23 16:33:10 +04:00
protokey 8f8bc62ae7 chore: попытка сделать так же как у scrapling 2026-09-23 14:40:50 +04:00
protokey 8a464391a2 docs: update 2026-09-23 12:16:51 +04:00
protokey 8f7645b2b9 feature!: перенимаем реализацию прохождения cf_turnstile у scrapling
https://github.com/D4Vinci/Scrapling

BREAKING_CHANGES: клик отрабатывает, но прохода не случается
2026-09-23 11:21:18 +04:00
protokey f2d4d441f4 feature: переезд на хром 2026-09-22 22:41:14 +04:00
protokey 714cf9f922 refactor: короче не кликает. похоже нужно переезжать на хром 2026-09-22 19:35:33 +04:00
protokey f1ed6edc7a feature!: добавлен обход claudflare
не кликает!
2026-09-22 18:56:50 +04:00
protokey 5146f74e43 feature: добавлена реализация antibot для cloudflare 2026-09-22 13:49:30 +04:00
protokey 1d2fdeae70 feature!: добавлен механизм обхода антибот защиты 2026-09-17 15:49:12 +04:00