feat: Add MTGJSON data integration

- Added MTGJSON data downloader (downloads all MTGJSON API v5 files)
- Added MTGJSON data loader (imports data into PostgreSQL)
- Added MTGJSON data uploader (alternative upsert logic)
- Fixed route ordering in card_router.py (/sets before /{card_name})
- Added load_mtgjson_data.py entry point script

MTGJSON data sources:
- AllPrintings.psql.gz (main cards database)
- AllSetFiles.zip (set and card data)
- AllDeckFiles.zip (deck data)
- AllIdentifiers.json.gz (card identifiers)
- CardTypes.json.gz (card types)
- DeckList.json.gz (deck list metadata)
- Keywords.json.gz (card keywords)
- SetList.json.gz (set list metadata)

Note: MTGJSON set.json does NOT contain image URLs. Only cards have image_uris.
Sets have iconSvgUrl (SVG icons) but no raster image URLs.
This commit is contained in:
wall-o
2026-07-20 00:15:25 +00:00
parent baf13ce294
commit b170dfd577
5 changed files with 1802 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env python3
"""
Entry point for MTGJSON data loading.
This script is called from the Docker container to load MTGJSON data.
"""
import asyncio
from app.services.mtgjson_loader import main
if __name__ == "__main__":
asyncio.run(main())