metalfrom.eu/apps/crawler/src
Nicolas Fryder c90b5063f1 feat: locked_fields, genres splittés, conflits, géocodage, jobs dashboard
Migration 007 :
- bands.locked_fields : champs édités manuellement = ne jamais réécrire
- bands.crawler_pending : valeurs MA différentes des valeurs verrouillées
- job_triggers : déclenchement de jobs depuis l'admin sans docker socket
- DELETE non-EU bands (6852 bands US/BR/CA/… entrés via crawl incrémental)

Crawler :
- upsert_band_enriched respecte locked_fields et stocke crawler_pending
- run_incremental filtre les bands hors Europe (EU-only désormais confirmé)
- update_crawl_run_progress toutes les 10 bands (granularité améliorée)
- main loop consomme job_triggers (enrich / incremental / full_crawl)
- retry sur JSONDecodeError dans get_json (FlareSolverr corps vide)

Admin PATCH bands :
- les champs édités sont automatiquement ajoutés à locked_fields

Dashboard :
- Genres découpés en mots-clés (Doom/Death Metal → Doom, Death Metal…)
- Listes pays/statut/genre sans limite, avec scroll interne

Bands admin :
- Colonne Thèmes + champ recherche thèmes_q
- Indicateur 🔒 sur les bands avec champs verrouillés

Nouvelles pages admin :
- Conflits : résolution champ par champ (garder ma valeur / accepter MA)
- Géocodage : stats queue, barre de progression, 20 derniers géocodages
- Jobs : boutons pour déclencher enrich/incremental/full_crawl manuellement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 23:06:20 +02:00
..
__init__.py feat(crawler): nouveau service crawler server-side via FlareSolverr 2026-06-27 15:15:29 +02:00
config.py feat(crawler): priority queue + délais réduits (1.5-2.5s) + limit 500 2026-06-30 21:05:17 +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: locked_fields, genres splittés, conflits, géocodage, jobs dashboard 2026-06-30 23:06:20 +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