Skip to main content

Resync les cartes d'un TCG

Resync les cartes d'un TCG

Dernière mise à jour : 2026-05-10

Pourquoi

Quand un TCG sort un nouveau set, ou quand tu refresh la base de cartes (traduction MTG, fix d'un bug source), il faut re-synchroniser la collection Qdrant avec la nouvelle source.

/admin → section Cartes / TCG → bouton "Resync" par TCG.

Ce que fait Resync

Le bouton appelle POST /api/admin/games/:id/sync-cards qui :

  1. Compare la collection Qdrant courante avec la source locale (cache fichier ou API live)
  2. Ajoute les nouvelles cartes
  3. Met à jour les cartes modifiées (effets erratés, traductions)
  4. Retire les cartes disparues
  5. Stream les progrès via EventSource (UI affiche live : added / updated / removed / total)

⚠️ Resync ne télécharge PAS la nouvelle source

Le bouton Resync ne fait pas :

  • Téléchargement Scryfall pour MTG
  • Téléchargement LorcanaJSON
  • Fetch API Riot pour Riftbound

C'est la responsabilité des scripts npm (cf. doc technique → "Mettre à jour les cartes d'un TCG").

Ordre canonique :

  1. Mettre à jour la source (script npm spécifique au TCG)
  2. Puis cliquer Resync depuis /admin

Cas particulier FAB

Comme la base FAB est un package npm bundlé dans l'image Docker (@flesh-and-blood/cards), la "mise à jour de source" passe par :

  1. npm update @flesh-and-blood/cards @flesh-and-blood/types localement
  2. Commit + push → CI Gitea build/push image
  3. Pull image sur Unraid → restart container
  4. Puis Resync

Sans le rebuild, le container utilise toujours l'ancienne version du package, donc Resync ne voit aucune nouvelle carte.

Vérifier que ça a marché

  • L'UI affiche les compteurs live pendant le sync
  • Après : tester une autocomplete @<carte récente> dans /play sur un jeu de la collection
  • Si 0 résultat : vérifier que games.has_card_database (en BDD SQLite) pointe sur la bonne collection Qdrant (flesh-and-blood-cards, magic-cards, etc.)