Resync les cartes d'un TCG
Resync les cartes d'un TCG
Dernière mise à jour : 2026-05-
1011
Pourquoi
Quand un TCG sort un nouveau set,set (ou quandque tu veux refresh la base deaprès cartes (traduction MTG,un fix d'unde bug source)source ou une amélioration de traduction), il faut re-synchroniser la collection Qdrant avec la nouvelle source.
Depuis le 2026-05-11, tout se fait depuis /admin — plus besoin de SSH dans le container pour la majorité des TCG.
Où
/admin → section CartesBases de cartes.
Tu y trouves une ligne par TCG, avec :
Les deux modes de resync
🔁 Mode "Live" — Riftbound uniquement
Bouton "Resync. (live)" : la source Riftbound est une API Riot interrogeable à chaud. Un clic suffit pour comparer la collection Qdrant avec ce que l'API renvoie en direct, et appliquer le diff (ajouts / TCGmises à jour / suppressions).
La progression s'affiche inline sous le nom du deck : "Connexion à la source… → boutonDiff calculé → Embedding 32/45 → Upsert Qdrant → Terminé : +3 ajouts, 12 modifs, 0 supprimé / 1 280 total".
C'est rapide (< 2 minutes) car aucune donnée n'est téléchargée localement.
⚙️ Mode "Resync"Pipeline" par— TCG.MTG,
CeLorcana, queFAB, faitTerraforming Resync
Mars, Ark Nova
LeBouton bouton"Lancer appellele POSTpipeline"/api/admin/games/:id/sync-cards quices TCG nécessitent un téléchargement préalable (bulk Scryfall pour MTG, LorcanaJSON pour Lorcana, package npm pour FAB, données locales pour TM/Ark Nova). Un clic enchaîne automatiquement toutes les étapes :
CompareTéléchargementla collection Qdrant courante avecde la sourcelocale(sauf(cacheFABfichierquiouestAPI live)bundlé)AjouteExtraction / parsingles(filtragenouvellesFR,cartesdédoublonnage, etc.)MetEmbeddingà+jouringestion Qdrantles cartes modifiées (effets erratés, traductions)
⚠️ Resync ne télécharge PAS la nouvelle source
Le boutondétail Resyncdes étapes est affiché dans le nemodal faitde pasprogression qui s'ouvre au clic. Tu y vois :
TéléchargementLaScryfalllistepourdesMTGétapes avec leur statut (en attente / en cours / terminé / erreur) et leur duréeTéléchargementUneLorcanaJSON
C'estréel la responsabilitésortie des scripts npm (cf.logs doc[ingest:mtg] )
technique18 →234 "Mettrecartes chargées…
Tu peux fermer la fenêtre
Le pipeline continue côté serveur même si tu fermes le modal ou navigues ailleurs. Si tu reviens sur /admin plus tard (avant la fin du job ou dans les cartes10 minutes qui suivent), le modal se rouvre automatiquement avec l'historique complet des logs et l'étape en cours.
C'est utile car certains pipelines sont longs :
Une seule resync à la fois
Pour ne pas saturer le GPU d'embedding, un TCG")seul job tourne à la fois (toutes collections confondues). Si MTG est en cours et que tu cliques sur FAB, le bouton FAB est désactivé et un message t'indique qu'un autre pipeline tourne déjà. Attends la fin du premier (ou ferme le modal et fais autre chose pendant que ça mouline).
Vérifier que ça a marché
OrdreÀ canoniquela fin du pipeline :
MettreLe badge de fraîcheur passe au vert ("À l'instant" / "Il y a 1 min")
Pour valider concrètement :
/play du jeu en question, ouvre une question et tape @<nom d'une carte du nouveau set> → la carte doit apparaître dans l'autocomplete
Pose une question synergy : "Quelles sont les nouvelles cartes du set X ?" → l'oracle doit pouvoir les citer
En cas d'erreur
Si une étape échoue, le modal affiche :
cards:mtg:download terminé avec code 1")
Les logs complets dans la console (scroll vers le bas pour voir le traceback)
Le badge de fraîcheur passe au TCG)rouge avec un tooltip qui montre les 60 premiers caractères de l'erreur.
Que faire ?
/adminle pipeline.
Si ça persiste, ouvre les logs container côté Unraid pour voir si une dépendance backend est cassée (Qdrant, TEI embeddings).
Cas particulier FAB (toujours utile à savoir)
CommeLe lapackage base FAB@flesh-and-blood/cards est un package npm bundléembarqué dans l'image Docker. (@flesh-and-blood/cards),Le labouton "miseLancer àle jourpipeline" ré-ingère ce que ce package contient, mais pas plus : si un nouveau set est sorti et que le package n'a pas été bumpé côté repo, le resync ne ramènera rien de source"neuf.
Workflow parpour vraiment ajouter de nouvelles cartes FAB :
- Update le package localement :
npm update @flesh-and-blood/cards @flesh-and-blood/typeslocalement - Commit + push → CI Gitea
build/pushbuild l'image - Pull
image sur Unraid →+ restartcontainer
Sans le rebuild, le container utilisesur toujours l'ancienne version du package, donc Resync ne voit aucune nouvelle carte.
Vérifier que ça a marché
@<carte récente>/playadmingames.has_card_databaseflesh-and-blood-cardsmagic-cards