metalfrom.eu/apps/crawler/src
Nicolas Fryder 1ae5aa4b57 feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline
Étape 0 de la refonte pipeline crawl/géocodage.

Auto-requeue du géocodage
- migration 013: trigger trg_bands_geocode_dirty (AFTER UPDATE OF location_text
  ON bands) supprime les band_locations d'un band dès que sa localisation
  change réellement (IS DISTINCT FROM) — plus de points fantômes après un
  déménagement détecté par le crawler incrémental.
- enqueue.py: en plus du déclenchement manuel, un scan automatique tourne
  toutes les ENQUEUE_AUTO_INTERVAL_MIN minutes (défaut 60) et rattrape les
  bands rendus "dirty" par le trigger (idempotent, ON CONFLICT DO NOTHING —
  pas de canal de notification supplémentaire nécessaire). Chaque exécution
  (manuelle ou auto) crée une ligne crawl_run + logs rattachés, en miroir de
  crawler/src/db.py, pour apparaître dans l'activité admin à venir.

Crawl complet en calcul glissant
- remplace CRAWLER_SCHED_FULL_DAY (jour fixe du mois) par
  CRAWLER_FULL_CRAWL_INTERVAL_DAYS (défaut 60) basé sur le checkpoint
  last_full_crawl_at — robuste au calendrier et aux redémarrages (vérifié
  aussi au démarrage, pas seulement le tick quotidien 03:00 UTC).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 21:07:16 +02:00
..
__init__.py feat(crawler): nouveau service crawler server-side via FlareSolverr 2026-06-27 15:15:29 +02:00
config.py feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline 2026-07-02 21:07:16 +02:00
db.py feat: locked_fields, genres splittés, conflits, géocodage, jobs dashboard 2026-06-30 23:06:20 +02:00
europe_codes.py feat(crawler): nouveau service crawler server-side via FlareSolverr 2026-06-27 15:15:29 +02:00
flaresolverr.py fix(crawler): FlareSolverr persistent sessions + DB data field + scraper schema 2026-06-30 20:29:33 +02:00
jobs.py feat: locked_fields, genres splittés, conflits, géocodage, jobs dashboard 2026-06-30 23:06:20 +02:00
ma_http.py feat: geocoder Geoapify + fixes crawler + améliorations admin dashboard 2026-06-30 22:44:28 +02:00
main.py feat(geocoder): seuil de confiance strict, dedup, purge ancien pipeline 2026-07-02 21:07:16 +02:00
polite.py feat(crawler): nouveau service crawler server-side via FlareSolverr 2026-06-27 15:15:29 +02:00
scraper_band.py fix(crawler): FlareSolverr persistent sessions + DB data field + scraper schema 2026-06-30 20:29:33 +02:00