Шаг 1 · Сбор списка id и точек карты
Прогон Scrapy с ids_only: DoLocationSearch (маркеры с координатами) +
GetSortedOffenders (полный список id). Результат — offender_ids_<slug>.json.
Число записей определяется автоматически — ручной ввод не нужен.
Ежедневная сверка — на вкладке «Сверка».
Записей в округе: —
Авто-сбор offender_ids по округам
Последовательный сбор offender_ids с автоматическим переключением округов.
TotalOffenders не нужен (плато-детекция). При требовании captcha сбор остановится.
Шаг 2 · Управление загрузкой профилей
Пауза — SIGINT текущему Scrapy. «Синхронизировать» вливает архивные выгрузки в канонический файл и выставляет slice_start. «Синхр. и продолжить (авто)» — авто-батчи и переход к следующим округам от выбранного (как авто-сбор id).
Статистика (—)
- Каталог id (Display List API)
- —
- Postable на сайте (справочно)
- —
- Маркеры на карте
- —
- Профили скачаны
- —
- Текущий батч (позиции в каталоге)
- —
- Файл профилей
- —
- Фото (в записи / на диске)
- —
- Карта: точные / ZIP / query
- —
Ежедневная сверка (—)
Повторный сбор списка с сайта и сравнение с локальным каталогом.
Обновляет поля в offenders_*.json (адрес, координаты, статус) и пишет отчёт
в run_report_sync_<slug>.json.
Привязка по stable_key / photo_site_id.
При тормозах сайта включайте «медленный сайт»: delay ≥12 c, timeout 180 c, больше повторов. Сверка округа Alameda может занять 25–40 минут.
Авто-сверка по округам
Последовательная ежедневная сверка с автоматическим переключением округов
(как «Авто-сбор offender_ids» на вкладке «Сбор»). Нужен локальный offender_ids.
Ежедневное автообновление (сверка → детали → БД)
Для каждого округа подряд: 1) сверка каталога с сайтом, 2) докачка новых и изменённых профилей (детали), 3) заливка округа в БД — и только потом переход к следующему округу. Так каждый округ полностью «закрывается» перед переходом к следующему — надёжнее и удобнее для ежедневного запуска одной кнопкой, чем делать три отдельных долгих прохода по всем округам. Совпадения алертов не шлются сразу: они копятся в очереди и уходят в время со вкладки «Пуши» (по умолчанию 08:00 по Калифорнии).
Отчёт сверки
—
Детальная информация после сверки
Сверка обновляет поля из списка/карты напрямую и безопасно. Детальная информация (модалка: DOB, правонарушения, фото) тянется отдельно.
- Новых / без профиля
- —
- С изменившимися данными (из сверки)
- —
- Последняя сверка
- —
Локальные профили (—)
Карта проверки (—)
Обзор данных (—)
- Каталог id
- —
- Профилей всего / с данными
- —
- Фото на диске
- —
- Каталог округа
- —
Файлы
Очистка данных
Перед очисткой остановите воркер (Стоп) на вкладке «Сбор».
Удаляет offenders_<slug>.json и каталог photos/. Список id и slice_start сохраняются.
Полностью удаляет каталог id, профили, фото, отчёты и прогресс батча для округа. Действие необратимо.
Полная очистка сервера
Удаляет все данные всех округов, прогресс, настройки, лог, сессию и записи в базе. Для чистого тестового прогона.
Отчёты прогонов
Как опубликовать данные в базе
- Сверка — вкладка «Сверка» → «Запустить сверку» (обновляет списки и поля из карты).
- Детали — «Догрузить новые/без профиля» (модалки с фото и правонарушениями).
- База данных — вернитесь сюда:
- первый раз → «Залить все» (галочка «с фото»);
- после сверки/догрузки → «Обновить изменённые (все)» или кнопка «Обновить» у округа.
- Проверка — «Проверить» у округа; статус в таблице ниже.
- Тест — вкладка «Приложение» показывает данные из API (PostgreSQL).
Подключение (—)
- Статус
- —
- Backend
- —
- База / проект
- —
- Дополнительно
- —
Округа в базе
История обновлений
Поиск по реестру (API)
—Карта
—Время рассылки пушей
После автообновления (сверка → детали → БД) совпадения name/ZIP-алертов
складываются в очередь и не отправляются сразу. Рассылка идёт в указанное
время по часовому поясу Калифорнии (America/Los_Angeles, PDT/PST),
когда людям удобно смотреть уведомления. Если прогон ещё идёт в этот час —
очередь уйдёт сразу после его окончания.
—
- Сейчас в Калифорнии
- —
- Следующая рассылка
- —
- В очереди
- —
- Firebase
- —
- Последняя рассылка
- —
Рассылка всем пользователям
Немедленный пуш всем профилям, у которых есть FCM-токен (не очередь алертов). Сейчас получателей: —.
Очередь на отправку
Пары профиль + offender, которые уйдут в выбранное время. Dedup 24 часа учитывается при постановке в очередь.
Сессия сайта
Из DevTools → Network → запрос OpenOffenderModal → Request Headers.
После сохранения текущий прогон останавливается — запустите Старт снова.
Тайминги и параметры Scrapy
Выбранный округ и настройки хранятся в control_ui/data/settings.json.