restructure backend
This commit is contained in:
56
pythonScripts/download_cards.py
Normal file
56
pythonScripts/download_cards.py
Normal file
@@ -0,0 +1,56 @@
|
||||
import os
|
||||
import requests
|
||||
from time import sleep
|
||||
|
||||
# --- Configuration ---
|
||||
TCGDEX_API = "https://api.tcgdex.net/v2/de/cards"
|
||||
OUTPUT_FOLDER = "cards"
|
||||
REQUEST_DELAY = 0.1 # seconds between requests to avoid rate limiting
|
||||
|
||||
# Create output folder if not exists
|
||||
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
|
||||
|
||||
# Fetch card list from TCGdex
|
||||
print("Fetching card list...")
|
||||
resp = requests.get(TCGDEX_API)
|
||||
if resp.status_code != 200:
|
||||
raise Exception(f"Failed to fetch card list: {resp.status_code}")
|
||||
cards = resp.json()
|
||||
print(f"Total cards fetched: {len(cards)}")
|
||||
|
||||
# Download each card image
|
||||
for card in cards:
|
||||
card_id = card.get("id", None)
|
||||
image_base = card.get("image", None)
|
||||
|
||||
if not card_id:
|
||||
print("Skipping card with missing ID:", card)
|
||||
continue
|
||||
|
||||
if not image_base:
|
||||
print(f"No image URL for {card_id}, skipping...")
|
||||
continue
|
||||
|
||||
image_url = image_base + "/high.png"
|
||||
output_path = os.path.join(OUTPUT_FOLDER, f"{card_id}.png")
|
||||
|
||||
# Skip if already downloaded
|
||||
if os.path.exists(output_path):
|
||||
print(f"Already exists: {card_id}")
|
||||
continue
|
||||
|
||||
try:
|
||||
r = requests.get(image_url, stream=True)
|
||||
if r.status_code == 200:
|
||||
with open(output_path, "wb") as f:
|
||||
for chunk in r.iter_content(1024):
|
||||
f.write(chunk)
|
||||
print(f"Downloaded: {card_id}")
|
||||
else:
|
||||
print(f"Failed to download {card_id}: HTTP {r.status_code}")
|
||||
except Exception as e:
|
||||
print(f"Error downloading {card_id}: {e}")
|
||||
|
||||
sleep(REQUEST_DELAY) # small delay to be polite
|
||||
|
||||
print("All done!")
|
||||
Reference in New Issue
Block a user