Final project commit: MTGJSON data integration and backend API
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# MTGJSON Data Download and Import Script
|
||||
# Downloads all MTGJSON data and creates a complete PostgreSQL database
|
||||
|
||||
set -e
|
||||
|
||||
MTGDATA_DIR="/home/wall-o/projects/mtgonline/backend/mtgdata"
|
||||
TEMP_DIR="$MTGDATA_DIR/temp"
|
||||
PSQL_DB="mtgdata"
|
||||
PSQL_USER="cockatrice"
|
||||
PSQL_HOST="mtgonline_postgres_mtgdata"
|
||||
|
||||
echo "=== MTGJSON Complete Data Download and Import ==="
|
||||
echo ""
|
||||
|
||||
# Create directories
|
||||
mkdir -p "$MTGDATA_DIR" "$TEMP_DIR"
|
||||
|
||||
# Download all requested files
|
||||
echo "Downloading MTGJSON data files..."
|
||||
echo ""
|
||||
|
||||
# Main cards database (PSQL format - no conversion needed)
|
||||
echo "1. Downloading AllPrintings.psql.gz (cards database)..."
|
||||
curl -sL "https://mtgjson.com/api/v5/AllPrintings.psql.gz" -o "$MTGDATA_DIR/AllPrintings.psql.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/AllPrintings.psql.gz | cut -f1))"
|
||||
|
||||
# Set files
|
||||
echo "2. Downloading AllSetFiles.zip..."
|
||||
curl -sL "https://mtgjson.com/api/v5/AllSetFiles.zip" -o "$MTGDATA_DIR/AllSetFiles.zip"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/AllSetFiles.zip | cut -f1))"
|
||||
|
||||
# Deck files
|
||||
echo "3. Downloading AllDeckFiles.zip..."
|
||||
curl -sL "https://mtgjson.com/api/v5/AllDeckFiles.zip" -o "$MTGDATA_DIR/AllDeckFiles.zip"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/AllDeckFiles.zip | cut -f1))"
|
||||
|
||||
# Identifiers
|
||||
echo "4. Downloading AllIdentifiers.json.gz..."
|
||||
curl -sL "https://mtgjson.com/api/v5/AllIdentifiers.json.gz" -o "$MTGDATA_DIR/AllIdentifiers.json.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/AllIdentifiers.json.gz | cut -f1))"
|
||||
|
||||
# Card Types
|
||||
echo "5. Downloading CardTypes.json.gz..."
|
||||
curl -sL "https://mtgjson.com/api/v5/CardTypes.json.gz" -o "$MTGDATA_DIR/CardTypes.json.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/CardTypes.json.gz | cut -f1))"
|
||||
|
||||
# Deck List
|
||||
echo "6. Downloading DeckList.json.gz..."
|
||||
curl -sL "https://mtgjson.com/api/v5/DeckList.json.gz" -o "$MTGDATA_DIR/DeckList.json.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/DeckList.json.gz | cut -f1))"
|
||||
|
||||
# Keywords
|
||||
echo "7. Downloading Keywords.json.gz..."
|
||||
curl -sL "https://mtgjson.com/api/v5/Keywords.json.gz" -o "$MTGDATA_DIR/Keywords.json.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/Keywords.json.gz | cut -f1))"
|
||||
|
||||
# Set List
|
||||
echo "8. Downloading SetList.json.gz..."
|
||||
curl -sL "https://mtgjson.com/api/v5/SetList.json.gz" -o "$MTGDATA_DIR/SetList.json.gz"
|
||||
echo " ✓ Downloaded ($(du -h $MTGDATA_DIR/SetList.json.gz | cut -f1))"
|
||||
|
||||
echo ""
|
||||
echo "All files downloaded successfully!"
|
||||
echo ""
|
||||
echo "Total size: $(du -sh $MTGDATA_DIR | cut -f1)"
|
||||
echo ""
|
||||
|
||||
# Verify all files exist
|
||||
echo "Verifying downloads..."
|
||||
for file in AllPrintings.psql.gz AllSetFiles.zip AllDeckFiles.zip AllIdentifiers.json.gz CardTypes.json.gz DeckList.json.gz Keywords.json.gz SetList.json.gz; do
|
||||
if [ -f "$MTGDATA_DIR/$file" ]; then
|
||||
echo " ✓ $file"
|
||||
else
|
||||
echo " ✗ $file (MISSING)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Downloads Complete ==="
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. The AllPrintings.psql.gz file can be directly imported into PostgreSQL"
|
||||
echo "2. Extract and process the zip files for additional data"
|
||||
echo "3. Import all data into the mtgdata database"
|
||||
Reference in New Issue
Block a user