gendesign/backend/app
bot-backend f6fb79522a
Some checks failed
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Failing after 1m57s
CI / backend-tests (pull_request) Successful in 14m44s
feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442)
Task 1: _norm_flat теперь читает catalog_url_hash из уже доступного kn-API
elemId вместо жёсткого None (domrf_kn.py:479) — разблокирует источник
хэшей для 983k квартир при следующем kn-sweep. elemId or None корректно
нормализует и отсутствие, и пустую строку.

Task 2: новый scrape_kn_catalog_flats Celery task оборачивает уже
смерженный scrape_catalog_batch (#2441) — batch-выборка по последнему
snapshot WHERE catalog_url_hash IS NOT NULL + 30d freshness/force.
Зарегистрирован в celery_app, ручной триггер POST /kn-catalog-flats.

Beat-запись оставлена закомментированной — по образцу уже отключённого
object-level catalog scraper: DOM.РФ WAF hard-ban на VPS IP с 2026-05-24
(см. #2443), cooldown не подтверждён. Task ships полностью dormant:
beat не назначен в рантайме, admin-endpoint требует авторизации, browser-
stack импортируется лениво внутри функции (не на старте воркера), живой
fetch недостижим без непустого batch. code-reviewer отдельно проверил
WAF-safety независимо — подтверждено.

Batch наполнится непустыми строками только после того, как Task 1
задеплоится И пройдёт свежий kn-sweep — ожидаемо 0 строк первое время.

Refs #2442, #2441, #2443
2026-07-05 21:39:39 +05:00
..
api feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442) 2026-07-05 21:39:39 +05:00
core feat(reports): Celery-джоба полного PDF-отчёта + кэш + 3 endpoint'а (#2259 PR-D) (#2287) 2026-07-03 11:13:06 +00:00
models merge: resolve conflicts with main (#1660) into week-review-finish 2026-06-17 20:21:06 +03:00
observability feat(backend): sentry-sdk init для FastAPI + Celery (#204 backend) (#207) 2026-05-16 15:09:16 +00:00
resources/certs feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) (#2165) 2026-07-02 16:44:57 +00:00
schemas feat(gisogd66): permits_nearby — точный радиус-запрос РНС/РВЭ (#2367 PR-2, backend-half) (#2401) 2026-07-04 09:59:49 +00:00
scrapers fix(week-review): backend-аудит v2 — 82 фиксов (#1660) 2026-06-17 17:13:38 +00:00
services feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442) 2026-07-05 21:39:39 +05:00
templates fix(site-finder): 5 дефектов из боевого фидбека analyze (#1736 #1737 #1738 #1739 #1740) 2026-06-18 11:47:21 +05:00
workers feat(scrapers): wire per-flat DOM.РФ catalog scraper + propagate catalog_url_hash (#2442) 2026-07-05 21:39:39 +05:00
__init__.py init 2026-04-25 13:45:19 +03:00
main.py fix(backend): emit app.* INFO logs to stdout on the API process (#1926) 2026-06-27 07:43:49 +05:00