From d7f46316e3c94388424bfca8caf7e4fbfbbfe6b0 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Sun, 13 Sep 2026 14:06:26 +0300 Subject: [PATCH] =?UTF-8?q?fix(tradein-scraper-kit):=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B4=D1=83=D0=BA=D1=82=D0=BE=D0=B2=D1=8B=D0=B9=20override=20d?= =?UTF-8?q?omclick=20=D1=82=D0=BE=D0=B6=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D0=B0=D0=B5=D1=82=20region=5Fcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/services/product_handlers.py::_job_domclick_city_sweep — app-side override kit-native джобы (issue 3264, инъекция куки Sber ID для обхода QRATOR PoW). Домклик по расписанию идёт именно через этот override, а не через kit-native _job_domclick_city_sweep напрямую (build_registry отдаёт последнее слово продукту) — предыдущий коммит добавил region_code только в kit-джобу, оставив override с прежним поведением. CI поймал дрейф штатным тестом test_product_override_matches_kit_native_call_except_cookies: он сравнивает kwargs обеих джоб и требует расхождения ровно в cookies. Валидацию не дублирую — импортирую _resolve_region_code из scraper_kit. orchestration.scheduler (как уже сделано для _pick_resume/_defer_next_run_at в этом же файле), чтобы список разрешённых регионов остался в одном месте. Другие дубли джоб в product_handlers.py, зовущие run_*_sweep/run_*_full_load, не найдены (grep по обоим паттернам — только domclick). --- tradein-mvp/backend/app/services/product_handlers.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tradein-mvp/backend/app/services/product_handlers.py b/tradein-mvp/backend/app/services/product_handlers.py index 4dd3e380..9d8fee48 100644 --- a/tradein-mvp/backend/app/services/product_handlers.py +++ b/tradein-mvp/backend/app/services/product_handlers.py @@ -39,6 +39,9 @@ from scraper_kit.orchestration.scheduler import ( from scraper_kit.orchestration.scheduler import ( _pick_resume as kit_pick_resume, ) +from scraper_kit.orchestration.scheduler import ( + _resolve_region_code as kit_resolve_region_code, +) if TYPE_CHECKING: from scraper_kit.orchestration.scheduler import SchedulerContext @@ -515,6 +518,7 @@ async def _job_domclick_city_sweep( rooms=params.get("rooms"), pages=int(params.get("pages_per_anchor", 5)), request_delay_sec=float(params.get("request_delay_sec", 6.0)), + region_code=kit_resolve_region_code(params), resume_run_id=kit_pick_resume(db, run_id), cookies=cookies, )