Импортёр знает Яндекс: город из второго компонента адреса, ноль внешних вызовов #3454

Merged
bot-backend merged 1 commit from feat/msk-yandex-import into main 2026-09-11 23:26:16 +00:00
Collaborator

Сбор Яндекса по Москве идёт с 11.09, а перелить его в listings было нечем: в SOURCE_VIEWS стояли только cian и avito.

Почему Яндексу не нужен ни округ, ни геокод

Адрес приходит полным и нормализованным — «Россия, Москва, Коробейников переулок, 1», поэтому регион читается вторым компонентом. Замер по 21 393 карточкам первого прохода: во втором компоненте ровно два значения, «Москва» 10 610 и «Московская область» 10 783, третьего не встречается. Новая Москва отдельным значением не приходит: Троицк и Зеленоград Яндекс кладёт под «Москва», что совпадает с кодом региона 77.

Координаты, адрес и ссылка заполнены у 100% карточек, так что geom появляется сразу и ночной geocode_missing не нужен. --geocode для yandex отклоняется так же, как для cian: внешняя квота нужна только Авито.

Что поменялось в коде

filter_by_okrug заменён словарём CITY_FILTERS: источник либо сам говорит про город, либо его в словаре нет — и тогда без пред-геокода писать его нельзя. Поведение cian и avito байт в байт прежнее, это видно по неизменившимся тестам.

Проверено

  • uv run python -m pytest tests/test_msk_raw_import.py — 42 passed
  • uv run ruff check . — All checks passed

🤖 Generated with Claude Code

https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh

Сбор Яндекса по Москве идёт с 11.09, а перелить его в `listings` было нечем: в `SOURCE_VIEWS` стояли только `cian` и `avito`. ## Почему Яндексу не нужен ни округ, ни геокод Адрес приходит полным и нормализованным — «Россия, Москва, Коробейников переулок, 1», поэтому регион читается вторым компонентом. Замер по 21 393 карточкам первого прохода: во втором компоненте ровно **два** значения, «Москва» 10 610 и «Московская область» 10 783, третьего не встречается. Новая Москва отдельным значением не приходит: Троицк и Зеленоград Яндекс кладёт под «Москва», что совпадает с кодом региона 77. Координаты, адрес и ссылка заполнены у 100% карточек, так что `geom` появляется сразу и ночной `geocode_missing` не нужен. `--geocode` для `yandex` отклоняется так же, как для `cian`: внешняя квота нужна только Авито. ## Что поменялось в коде `filter_by_okrug` заменён словарём `CITY_FILTERS`: источник либо сам говорит про город, либо его в словаре нет — и тогда без пред-геокода писать его нельзя. Поведение `cian` и `avito` байт в байт прежнее, это видно по неизменившимся тестам. ## Проверено - `uv run python -m pytest tests/test_msk_raw_import.py` — 42 passed - `uv run ruff check .` — All checks passed 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
bot-backend added 1 commit 2026-09-11 23:20:14 +00:00
feat(msk): импортёр знает Яндекс — город из адреса, ноль внешних вызовов
All checks were successful
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
CI Trade-In / changes (pull_request) Successful in 9s
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 / backend-tests (pull_request) Successful in 5m9s
ce9c45c3c2
Сбор Яндекса по Москве уже идёт, а лить его было нечем: в SOURCE_VIEWS стояли
только cian и avito.

Отбор Москвы у Яндекса не требует ни префикса округа (как у Циана), ни
пред-геокода (как у Авито). Адрес приходит полным и нормализованным — «Россия,
Москва, Коробейников переулок, 1», регион читается вторым компонентом. Замер по
21 393 карточкам первого прохода: во втором компоненте ровно ДВА значения,
«Москва» 10 610 и «Московская область» 10 783, третьего не встречается. Новая
Москва отдельным значением не приходит — Троицк и Зеленоград Яндекс кладёт под
«Москва», что совпадает с кодом региона 77.

Координаты, адрес и ссылка заполнены у 100% карточек, поэтому geom появляется
сразу и ждать ночного `geocode_missing` не нужно. `--geocode` для yandex
отклоняется так же, как для cian: квота нужна только Авито.

`filter_by_okrug` заменён словарём CITY_FILTERS — источник либо сам говорит про
город, либо его в словаре нет и без пред-геокода писать его нельзя. Поведение
cian и avito байт в байт прежнее.

`uv run python -m pytest tests/test_msk_raw_import.py` — 42 passed, ruff чист.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VQ8jqr4SFirX5tFLwdSrXh
bot-backend merged commit ba17c868d4 into main 2026-09-11 23:26:16 +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#3454
No description provided.