feat(tradein/avito): путь вторички для якорного и citywide-обхода (#3033, follow-up) #3042

Merged
bot-backend merged 2 commits from feat/3033-anchor-citywide-secondary into main 2026-08-21 15:33:23 +00:00
Collaborator

Summary

Follow-up по комментарию владельца (15:02): #3039 закрыл только fetch_all_secondary; якорный city-sweep (fetch_around_build_web_url с geoCoords/radius) и fetch_city_wide оставались на общей выдаче (прогон 4539 после деплоя: 41 vtorichka + 26 novostroyki).

Предусловие проверено вживую (21.08 15:20 UTC, сайдкар, узел 9, один якорь центр ЕКБ, radius=1):

путь карточек total сегменты
общий prodam-ASgB… (как было) 55 45 663 vtorichka 41 / novostroyki 14
prodam/vtorichka (читаемый) 50 9 071 vtorichka 50
prodam/vtorichka-ASgBAgICAkSSA8YQ5geMUg (канон) 60 9 036 vtorichka 60

geoCoords/radius путь принимает, редиректа у канонического slug нет → для путей без комнатности берём его.

  • SECONDARY_SLUG + _category_path(secondary=); _build_web_url/_build_citywide_url получают secondary=; fetch_around и fetch_city_widesecondary_only=True по умолчанию (класс и есть «Avito vtorichka parser», новостройки ходят своим fetch_newbuildings/_build_newbuilding_url — не тронут). Пайплайн city-sweep и админ-скрейп получают это автоматически; secondary_only=False возвращает прежнее поведение.

Test plan

  • test_3033_avito_native_secondary_filter.py +4: fetch_around по умолчанию → slug вторички + сохранённые geoCoords/radius/s; secondary_only=False → общая; citywide — обе ветки; путь новостроек не изменился. На origin/main 3 красных (2 по значению), остальные зелёные. Смежные 122 теста (URL/город/parity/captcha/admin) зелёные.
  • Прод: следующий avito_city_sweep (ежедневно ~06:4x UTC) — в listings по этому прогону listing_segment='novostroyki' = 0, объём vtorichka не меньше 41.

⚠️ Побочная находка той же пробы — в отдельной issue: geoCoords/radius Авито на сервере не фильтрует (три якоря в 10+ км дали одну и ту же страницу), якорный свип = 5× одна городская выдача.

Refs #3033

## Summary Follow-up по комментарию владельца (15:02): #3039 закрыл только `fetch_all_secondary`; якорный city-sweep (`fetch_around` → `_build_web_url` с `geoCoords`/`radius`) и `fetch_city_wide` оставались на общей выдаче (прогон 4539 после деплоя: 41 vtorichka + 26 novostroyki). **Предусловие проверено вживую** (21.08 15:20 UTC, сайдкар, узел 9, один якорь центр ЕКБ, radius=1): | путь | карточек | total | сегменты | |---|---:|---:|---| | общий `prodam-ASgB…` (как было) | 55 | 45 663 | vtorichka 41 / novostroyki 14 | | `prodam/vtorichka` (читаемый) | 50 | 9 071 | vtorichka 50 | | `prodam/vtorichka-ASgBAgICAkSSA8YQ5geMUg` (канон) | 60 | 9 036 | vtorichka 60 | — `geoCoords`/`radius` путь принимает, редиректа у канонического slug нет → для путей без комнатности берём его. - `SECONDARY_SLUG` + `_category_path(secondary=)`; `_build_web_url`/`_build_citywide_url` получают `secondary=`; **`fetch_around` и `fetch_city_wide` — `secondary_only=True` по умолчанию** (класс и есть «Avito vtorichka parser», новостройки ходят своим `fetch_newbuildings`/`_build_newbuilding_url` — не тронут). Пайплайн city-sweep и админ-скрейп получают это автоматически; `secondary_only=False` возвращает прежнее поведение. ## Test plan - [x] `test_3033_avito_native_secondary_filter.py` +4: fetch_around по умолчанию → slug вторички + сохранённые `geoCoords/radius/s`; `secondary_only=False` → общая; citywide — обе ветки; путь новостроек не изменился. На origin/main 3 красных (2 по значению), остальные зелёные. Смежные 122 теста (URL/город/parity/captcha/admin) зелёные. - [ ] Прод: следующий `avito_city_sweep` (ежедневно ~06:4x UTC) — в `listings` по этому прогону `listing_segment='novostroyki'` = 0, объём vtorichka не меньше 41. ⚠️ Побочная находка той же пробы — в отдельной issue: `geoCoords`/`radius` Авито на сервере **не фильтрует** (три якоря в 10+ км дали одну и ту же страницу), якорный свип = 5× одна городская выдача. Refs #3033
bot-backend added 2 commits 2026-08-21 15:26:14 +00:00
Почему: #3039 закрыл только fetch_all_secondary; якорный city-sweep
(fetch_around → _build_web_url с geoCoords/radius) и fetch_city_wide
остались на общей выдаче — прогон 4539 после деплоя принёс 41 vtorichka +
26 novostroyki. Предусловие владельца проверено вживую 21.08 через сайдкар:
/prodam/vtorichka-ASgB… принимает geoCoords/radius (60 карточек, все
vtorichka, total=9036 против 55 карточек 41/14 у общей выдачи).

Что: SECONDARY_SLUG (канонический, без редиректа) в _category_path;
_build_web_url/_build_citywide_url получают secondary=; fetch_around и
fetch_city_wide — secondary_only=True по умолчанию (класс — парсер
вторички, новостройки ходят своим fetch_newbuildings; админ-скрейп и
пайплайн получают это автоматически). _build_newbuilding_url не тронут.

Тесты: fetch_around/fetch_city_wide по умолчанию — slug вторички и
сохранённые geoCoords/radius; secondary_only=False — прежний путь; путь
новостроек не изменился. На main красный по значению.

Побочно обнаружено и вынесено в отдельную issue: geoCoords/radius Авито
на сервере НЕ фильтрует — три якоря в 10+ км дали одну и ту же страницу.

Refs #3033
test(tradein): #3033 follow-up — slug вторички в тесте литералом, чтобы на main тесты краснели по значению, а не на импорте
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 11s
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m32s
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
65e8eb08ab
bot-backend merged commit bebeb0c8f0 into main 2026-08-21 15:33:23 +00:00
bot-backend deleted branch feat/3033-anchor-citywide-secondary 2026-08-21 15:33:23 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3042
No description provided.