|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 12s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Successful in 1m15s
Домклик отдаёт рукопожатие без единого стабильного маркера (в отличие от Авито), поэтому _CHALLENGE_MARKERS (сняты с Авито, #3045) на нём никогда не матчились и ветка ожидания не включалась — недосчитанная страница уезжала наверх, парсер не находил __SSR_STATE__ и поднимал ложный блок. Это и был двухнедельный attempted=3, blocked=3, enriched=0 у domclick_detail_backfill. Для provider=="domclick" логика инвертирована: положительно опознаём только два крайних состояния — успех (__SSR_STATE__) и статический отказ площадки («403 | Домклик» / «похоже, ваш запрос выглядит необычно»); всё остальное (загрузчик рукопожатия, нерендеренная PoW-страница без каких-либо маркеров) трактуется как «рукопожатие ещё идёт» и уходит в существующий _wait_out_pow_challenge с кастомным is_pending. HTTP-статус для DomClick не используется как сигнал (401 приходит и у отказа, и у успеха, и у здорового рукопожатия) — решает только тело. Avito и прочие провайдеры идут по старой elif-ветке без изменений. _wait_out_pow_challenge получил опциональный параметр is_pending (дефолт _is_pow_challenge) — golden-parity для всех, кроме domclick. |
||
|---|---|---|
| .. | ||
| Dockerfile | ||
| server.py | ||
| test_server.py | ||
| test_server_domclick_challenge.py | ||
| test_server_fetch_json.py | ||
| test_server_http_status.py | ||
| test_server_no_proxy_refusal.py | ||
| test_server_pacing.py | ||
| test_server_pow_challenge.py | ||
| test_server_proxy_override.py | ||
| test_server_recycle.py | ||
| test_server_resource_block.py | ||
| test_server_reuse_context.py | ||
| test_server_smoke.py | ||