Un projet expérimental pour créer une base de données complète des cartes Pokémon en français, avec génération automatique à partir d'images de référence et extraction de métadonnées depuis Cardmarket.
- À propos
- Structure du projet
- Prérequis
- Installation
- Utilisation
- Format des données
- Scripts disponibles
- Contribution
- Licence
Ce dépôt permet de travailler sur une base de données des hash de cartes Pokémon TCG en français. Le projet est avant tout expérimental et vise à automatiser la création d'entrées JSON pour chaque carte à partir d'images de référence et de données en ligne.
Note : Ce projet est à usage personnel et expérimental. Demandez l'autorisation sur Discord avant d'utiliser les cartes disponibles.
card-scanner-fr-python/
│
├── json/
│ └── mega-evolution/
│ └── fr/
│ └── cards.json # Base de données des cartes françaises
│
├── reference_images/
│ └── mega-evolution/
│ └── fr-fr/ # Images de référence des cartes
│ └── JL2G_FR_*.png
│
├── test_images/ # Images de test
├── test_reference_images/ # Images de référence pour tests
│
├── requirements.txt # Dépendances Python
├── main.ipynb # Notebook Jupyter principal
└── README.md # Ce fichier
- Python 3.8+
- PowerShell (Windows) ou un terminal bash (Linux/macOS)
- Connexion Internet (pour l'extraction depuis Cardmarket)
- Cloner le dépôt :
git clone https://github.com/nazimboudeffa/card-scanner-fr.git
cd card-scanner-fr-python- Installer les dépendances :
pip install -r requirements.txtLes images de référence peuvent être téléchargées depuis le site officiel Pokémon :
🔗 https://tcg.pokemon.com/fr-fr/galleries/mega-evolution/
Placez toutes les images dans le dossier :
reference_images/mega-evolution/fr-fr/
Les images doivent suivre le format de nommage : JL2G_FR_<numéro>.png
Le script generate_cards.py crée automatiquement des entrées JSON pour chaque image trouvée dans le dossier de référence.
python generate_db.py- 📂 Scanne le dossier
reference_images/mega-evolution/fr-fr/ - 🔢 Extrait le numéro de carte depuis le nom de fichier (
JL2G_FR_42.png→ numéro 42) - ✨ Génère une entrée JSON avec des valeurs par défaut
- 💾 Met à jour
json/mega-evolution/fr/cards.jsonsans dupliquer les cartes existantes - 🖼️ Ajoute le chemin de l'image si absent sur les cartes existantes
{
"set": "Mega Evolution",
"language": "fr",
"category": "Pokemon",
"rarity": "À définir",
"number": 42,
"name": "Carte 42",
"image": "reference_images/mega-evolution/fr-fr/JL2G_FR_42.png"
}Generated 187 new card entries. Total now: 188
Le script scrape_cardmarket.py récupère les noms officiels, raretés et autres métadonnées depuis Cardmarket.
python scrape_cardmarket.py- 🌐 Se connecte à Cardmarket (cardmarket.com)
- 🎴 Extrait les informations de toutes les cartes du set Mega Evolution en français
- 💾 Génère un fichier
cardmarket_cards.jsonavec les données complètes
- Nom officiel de la carte
- Numéro dans le set
- Rareté
- Type de carte
- Et plus encore...
Le script merge_cardmarket_data.py fusionne les données Cardmarket avec vos entrées générées localement.
python merge_cardmarket_data.py- 📖 Lit
cards.jsonetcardmarket_cards.json - 🔄 Remplace les placeholders ("Carte X", "À définir") par les vraies données
- 💾 Met à jour
cards.jsonavec les informations complètes - ✅ Préserve les métadonnées détaillées existantes
{
"name": "Mewtwo-EX",
"illustrator": "5ban Graphics",
"rarity": "Ultra Rare",
"category": "Pokemon",
"set": "Mega Evolution",
"language": "fr",
"number": 158,
"dexId": [150],
"hp": 180,
"types": ["Psychic"],
"suffix": "EX",
"abilities": [
{
"type": "Ability",
"name": "Psychic Recharge",
"effect": "..."
}
],
"attacks": [
{
"cost": ["Psychic", "Colorless", "Colorless"],
"name": "Psystrike",
"damage": 120,
"effect": "..."
}
],
"weaknesses": [{"type": "Psychic", "value": "×2"}],
"resistances": [{"type": "Fighting", "value": "-20"}],
"retreat": 2,
"legalities": {"expanded": true},
"regulationMark": "D",
"variants": {
"normal": false,
"reverse": true,
"holo": true,
"firstEdition": false
},
"image": "reference_images/mega-evolution/fr-fr/JL2G_FR_158.png"
}| Script | Description | Sortie |
|---|---|---|
main.ipynb |
Notebook Jupyter | - |
- Télécharger les images de référence
- Exécuter
main.ipynbpour créer la structure de base - Personnaliser manuellement les détails avancés (attaques, talents, etc.)
Si vous voyez des caractères mal affichés dans PowerShell :
chcp 65001Vous pouvez relancer generate_cards.py après avoir ajouté/supprimé des images. Le script ne crée pas de doublons pour les cartes existantes.
Pour remplacer rapidement les placeholders :
- Cherchez
"Carte "pour trouver les noms à compléter - Cherchez
"À définir"pour trouver les raretés manquantes
Les contributions sont les bienvenues ! N'hésitez pas à :
- 🍴 Forker le projet
- 🌿 Créer une branche (
git checkout -b feature/amelioration) - 💾 Commiter vos changements (
git commit -m 'Ajout d'une fonctionnalité') - 📤 Pousser sur la branche (
git push origin feature/amelioration) - 🔀 Ouvrir une Pull Request
Ce projet est à usage expérimental et personnel. Contactez l'auteur pour toute utilisation commerciale ou distribution.
Nazim Boudeffa
GitHub: @nazimboudeffa
- Pokémon Company International pour les images officielles
- Cardmarket pour les métadonnées des cartes
- La communauté Pokémon TCG FR
Bon scanning ! 🎴✨