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.
Où
/admin → section Cartes / TCG → bouton "Resync" par TCG.
Ce que fait Resync
Le bouton appelle POST /api/admin/games/:id/sync-cards qui :
- Compare la collection Qdrant courante avec la source locale (cache fichier ou API live)
- Ajoute les nouvelles cartes
- Met à jour les cartes modifiées (effets erratés, traductions)
- Retire les cartes disparues
- 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 :
- Mettre à jour la source (script npm spécifique au TCG)
- 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 :
npm update @flesh-and-blood/cards @flesh-and-blood/typeslocalement- Commit + push → CI Gitea build/push image
- Pull image sur Unraid → restart container
- 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/playsur 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.)