Импорт сырья msk_raw умеет Московскую область, а не только Москву #3505
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3505
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/msk-raw-import-region-50"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Целевой регион стал параметром:
--region, по умолчанию 77. Поведение Москвы остаётся байт-в-байт, есть анти-регресс-тест на прежних фикстурах.Как каждый источник узнаёт область
Все числа — замер по прод-сырью 12.09.2026.
Циан. Область в адресе не видна вовсе, поэтому читается по поддомену
source_url. Поддоменwwwдаёт 38 030 карточек, из них 36 569 с префиксом округа. Все прочие поддомены — ноль карточек с округом:Два сигнала нигде не противоречат друг другу, поэтому Москва остаётся на префиксе округа (не трогаем), а область берётся из URL. Хост не
*.cian.ru, голыйcian.ru, пустой или отсутствующийsource_url— всё даётNoneи трактуется как «не область». Ложной области такой промах не создаёт.Яндекс. Второй компонент адреса, значений ровно два: «Москва» 13 287, «Московская область» 10 865.
Авито. Регион приходит из пред-геокода, адресного признака у источника нет ни для какого региона. Полка
msk_raw.avito_geocodeуже содержит 9 840 строк сregion_code=50(77 — 11 682, NULL — 2 757), а_resolve_pointsчитает кэш первым, так что прогон по области не стоит ни одного вызова DaData.ДомКлик. Областного корпуса нет вовсе: сырьё собрано с GUID-ом Москвы, первый компонент адреса имеет одно значение «Москва» на всех 22 836 карточках. Поэтому
--source domclick --region 50падает явнымSystemExitдо любого обращения к БД, а не отдаёт тихий ноль.city для области
Пишется
None. Единого города у области нет —canonical_cityв реестре пуст.save_listingsобъявляетcity: str | Noneи пишетcity = COALESCE(EXCLUDED.city, listings.city), то есть повторный прогон уже известный город не затирает. Продуктовой потери нет: подбор аналогов радиусный (ST_DWithin), а ценовая полоса ДКП ключуется наdeals.city, а не наlistings.city.Счётчики
skipped_not_moscow→skipped_not_target_region,skipped_oblast→skipped_geo_other_region. Формулаcheck()обновлена, итоговый лог называет целевой регион вместо «Москвы».Проверка
Ревью пройдено, вердикт APPROVE. Единственное замечание — поддомен читался из
netloc, и гипотетический порт в URL промахнулся бы мимо суффикса. Исправлено переходом наhostnameплюс тест на порт, регистр хоста и похожий домен.🤖 Generated with Claude Code
https://claude.ai/code/session_01NQb6WeJtagZwZnUsSjDizs