gendesign/tradein-mvp/backend
bot-backend a167ca30b6 feat(tradein/avito): переключить room-URL на родной фильтр вторички Avito
Вторичка — 20.6% общей выдачи ЕКБ (9612 из 46573, замер 2026-08-21). Свип и
exhaustive full-load качали ВСЮ выборку прямоугольника и отбрасывали ~79%
новостроек ПОСЛЕ парсинга (secondary_only, listing_segment=="novostroyki").
Родной путь Avito /{city}/kvartiry/prodam/{room-readable}/vtorichka отдаёт
сразу нужную выборку — объём обхода сокращается ~впятеро.

Декодировать бинарный ASgB-хвост не нужно: подтверждено вживую через camoufox
(2026-08-21) — заход на читаемый путь без хвоста канонизируется Avito и отдаёт
правильную выдачу. Читаемый префикс уже лежит в ROOM_SLUGS до маркера "-ASgB"
(_room_readable_prefix). secondary_only-фильтр после парсинга НЕ убран —
остаётся страховкой на случай протечки новостройки в выдачу вторички.

Заодно: _AVITO_OFFERS_PER_PAGE 50 -> 60 (подтверждено вживую через реальный
/fetch tradein-browser sidecar — 59-60 уникальных data-item-id на странице,
"лишние" карточки — обычные объявления с платным VAS-продвижением, не отдельный
рекламный блок). Константа занижала pages_needed на 20% в бисекции.

NOVOSTROYKA_SLUG / avito_newbuilding_sweep не тронуты (отдельный builder).
impersonate='chrome120' не тронут (PR #3038).

Обнаружено, но НЕ в скоупе (отдельная задача): scrape_schedules хранит
"kamensk_uralskiy"/"verkhnyaya_pyshma" — реальные Avito-слаги "kamensk-uralskiy"
(дефис)/"verhnyaya_pyshma" (без "к"). Баг pre-existing, воспроизводится и на
СТАРОМ URL-формате (не следствие этого PR).

Ценовые брекеты не перекалиброваны (см. PR body — data-driven по смеси, надо
замерить заново на чистой вторичке).

Refs #3033
2026-08-21 17:28:26 +03:00
..
app chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат (#2864) (#3022) 2026-08-21 12:01:52 +00:00
data/sql Merge remote-tracking branch 'forgejo/main' into fix/2990-clean-start-initdb 2026-08-21 15:35:32 +03:00
scripts chore(format): нормализация под ruff 0.15.20 — 161 файл, только формат (#2864) (#3022) 2026-08-21 12:01:52 +00:00
tests feat(tradein/avito): переключить room-URL на родной фильтр вторички Avito 2026-08-21 17:28:26 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat(tradein): версионирование продукта — единый источник, подвал, PDF, /versions (#2824) 2026-08-10 16:00:54 +00:00
pyproject.toml chore(tooling): pre-commit, pyproject и uv.lock — один ruff 0.15.20 (#2864) (#3021) 2026-08-21 11:37:23 +00:00