ДомКлик как четвёртый источник переливки московского сырья в listings #3497

Merged
lekss361 merged 1 commit from feat/msk-domclick-import into main 2026-09-12 12:26:10 +00:00
Owner

Зачем

Сбор ДомКлика по Москве пошёл (#3496), но переливать собранное в listings было нечем: в SOURCE_VIEWS значились только Циан, Авито и Яндекс. Вью msk_raw.domclick_latest в проде уже существует — не хватало двух записей в словарях и распознавания города.

Город читается первым компонентом адреса

Источник Где регион Цена определения
Циан города в адресе нет, выдаёт префикс округа ноль вызовов
Яндекс второй компонент после страны ноль вызовов
Авито нигде нужен пред-геокод
ДомКлик первый компонент ноль вызовов

Замер по 5 024 карточкам первого прохода: первый компонент имеет ровно одно значение, «Москва». Областных нет ни одной — сырьё собрано запросом с GUID-ом Москвы и отфильтровано по bbox ещё на стороне сборщика.

Поэтому фильтр здесь вторая линия, а не единственная. Сменится GUID в сборщике или приедет в ту же таблицу второй город — импорт не потащит его в Москву молча, а отложит в skipped_not_moscow.

Новая Москва регион не ломает: «Москва, пос. Птичное, …» и «Москва, x. Ильичевка, …» держат посёлок вторым компонентом, первым всегда город, что и соответствует коду 77.

Сравнение идёт по компоненту целиком, а не по префиксу строки: иначе «Московская область» и «Московский» прошли бы как Москва. Оба случая закреплены тестом.

Test plan

  • Распознавание Москвы, включая две формы Новой Москвы
  • Отбраковка области, Екатеринбурга, похожего префикса «Московский», пустой строки и None
  • Проводка источника в оба словаря
  • pytest tests/test_msk_raw_import.py — 45 passed
  • ruff check и ruff format --check — чисто
  • Боевой прогон импорта после окончания сбора

🤖 Generated with Claude Code

https://claude.ai/code/session_01NQb6WeJtagZwZnUsSjDizs

## Зачем Сбор ДомКлика по Москве пошёл (#3496), но переливать собранное в `listings` было нечем: в `SOURCE_VIEWS` значились только Циан, Авито и Яндекс. Вью `msk_raw.domclick_latest` в проде уже существует — не хватало двух записей в словарях и распознавания города. ## Город читается первым компонентом адреса | Источник | Где регион | Цена определения | |---|---|---| | Циан | города в адресе нет, выдаёт префикс округа | ноль вызовов | | Яндекс | второй компонент после страны | ноль вызовов | | Авито | нигде | нужен пред-геокод | | ДомКлик | первый компонент | ноль вызовов | Замер по 5 024 карточкам первого прохода: первый компонент имеет ровно одно значение, «Москва». Областных нет ни одной — сырьё собрано запросом с GUID-ом Москвы и отфильтровано по bbox ещё на стороне сборщика. Поэтому фильтр здесь **вторая линия, а не единственная**. Сменится GUID в сборщике или приедет в ту же таблицу второй город — импорт не потащит его в Москву молча, а отложит в `skipped_not_moscow`. Новая Москва регион не ломает: «Москва, пос. Птичное, …» и «Москва, x. Ильичевка, …» держат посёлок вторым компонентом, первым всегда город, что и соответствует коду 77. Сравнение идёт по компоненту целиком, а не по префиксу строки: иначе «Московская область» и «Московский» прошли бы как Москва. Оба случая закреплены тестом. ## Test plan - [x] Распознавание Москвы, включая две формы Новой Москвы - [x] Отбраковка области, Екатеринбурга, похожего префикса «Московский», пустой строки и None - [x] Проводка источника в оба словаря - [x] `pytest tests/test_msk_raw_import.py` — 45 passed - [x] `ruff check` и `ruff format --check` — чисто - [ ] Боевой прогон импорта после окончания сбора 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01NQb6WeJtagZwZnUsSjDizs
lekss361 added 1 commit 2026-09-12 12:16:58 +00:00
feat(msk-import): ДомКлик как четвёртый источник переливки сырья в listings
All checks were successful
CI / changes (pull_request) Successful in 11s
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 / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 7m21s
f6938452d0
Сбор ДомКлика по Москве пошёл (PR #3496), но переливать его в listings было
нечем: в SOURCE_VIEWS стояли только Циан, Авито и Яндекс. Вью
msk_raw.domclick_latest в проде уже существует, не хватало двух записей в
словарях и распознавания города.

## Город читается первым компонентом адреса

У Циана города в адресе нет вовсе и Москву выдаёт префикс округа; у Яндекса
регион стоит вторым компонентом после страны. У ДомКлика адрес начинается
прямо с города: «Москва, улица Нижние Мнёвники, 16 к2».

Замер по 5 024 карточкам первого прохода: первый компонент имеет ровно одно
значение — «Москва», областных нет ни одной. Это ожидаемо, сырьё собрано
запросом с GUID-ом Москвы и отфильтровано по bbox ещё на стороне сборщика.

Поэтому фильтр здесь — вторая линия, а не единственная. Сменится GUID в
сборщике или приедет в ту же таблицу второй город — импорт не потащит его в
Москву молча, а отложит в skipped_not_moscow.

Новая Москва регион не ломает: «Москва, пос. Птичное, …», «Москва, x.
Ильичевка, …» — посёлок стоит ВТОРЫМ компонентом, первым всегда город, что и
соответствует коду 77.

Сравнение идёт по компоненту целиком, а не по префиксу строки: иначе
«Московская область» и «Московский» прошли бы как Москва. Оба случая
закреплены тестом.

## Тесты

Распознавание Москвы, включая две формы Новой Москвы; отбраковка области,
Екатеринбурга, похожего на префикс «Московский», пустой строки и None;
проводка источника в оба словаря. 45 passed, ruff чистый.

Claude-Session: https://claude.ai/code/session_01NQb6WeJtagZwZnUsSjDizs
lekss361 merged commit dfe7910bb7 into main 2026-09-12 12:26:10 +00:00
lekss361 deleted branch feat/msk-domclick-import 2026-09-12 12:26:10 +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#3497
No description provided.