Delete mtgimagedl.py
This commit is contained in:
parent
df1659b3ef
commit
af0b1dfb52
@ -1,72 +0,0 @@
|
|||||||
import requests
|
|
||||||
import pandas as pd
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
|
|
||||||
# Function to fetch card details from Scryfall using the set code and collector number
|
|
||||||
def fetch_card_images_by_set_and_number(set_code, collector_number):
|
|
||||||
url = f"https://api.scryfall.com/cards/{set_code}/{collector_number}"
|
|
||||||
response = requests.get(url)
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
|
||||||
card_data = response.json()
|
|
||||||
images = []
|
|
||||||
|
|
||||||
# Handle single-sided or multi-sided cards
|
|
||||||
if 'image_uris' in card_data:
|
|
||||||
images.append((card_data['image_uris']['normal'], card_data['name']))
|
|
||||||
if 'card_faces' in card_data:
|
|
||||||
for face in card_data['card_faces']:
|
|
||||||
if 'image_uris' in face:
|
|
||||||
images.append((face['image_uris']['normal'], face['name']))
|
|
||||||
return images
|
|
||||||
else:
|
|
||||||
print(f"Error fetching card with set code {set_code} and collector number {collector_number}: {response.status_code}")
|
|
||||||
return None
|
|
||||||
|
|
||||||
# Function to download and save an image
|
|
||||||
def download_image(image_url, save_path):
|
|
||||||
response = requests.get(image_url)
|
|
||||||
if response.status_code == 200:
|
|
||||||
with open(save_path, 'wb') as file:
|
|
||||||
file.write(response.content)
|
|
||||||
else:
|
|
||||||
print(f"Failed to download image from {image_url}")
|
|
||||||
|
|
||||||
# Function to process the CSV and download images
|
|
||||||
def download_images_from_csv(csv_path, output_folder):
|
|
||||||
# Create output directory if it doesn't exist
|
|
||||||
if not os.path.exists(output_folder):
|
|
||||||
os.makedirs(output_folder)
|
|
||||||
|
|
||||||
# Read the CSV file
|
|
||||||
df = pd.read_csv(csv_path)
|
|
||||||
|
|
||||||
# Assuming the CSV has columns 'Card Name', 'Set Code', and 'Collector Number'
|
|
||||||
for index, row in df.iterrows():
|
|
||||||
card_name = row['Card Name']
|
|
||||||
set_code = row['Set Code']
|
|
||||||
collector_number = row['Collector Number']
|
|
||||||
|
|
||||||
print(f"Processing {card_name} from set {set_code} with collector number {collector_number}...")
|
|
||||||
|
|
||||||
images = fetch_card_images_by_set_and_number(set_code, collector_number)
|
|
||||||
if images:
|
|
||||||
for image_url, face_name in images:
|
|
||||||
# Sanitize file name by removing invalid characters
|
|
||||||
image_file_name = f"{card_name.replace('/', '-').replace(':', '')}_{face_name.replace('/', '-').replace(':', '')}.jpg"
|
|
||||||
save_path = os.path.join(output_folder, image_file_name)
|
|
||||||
download_image(image_url, save_path)
|
|
||||||
time.sleep(0.1) # Sleep to avoid hitting API rate limits
|
|
||||||
else:
|
|
||||||
print(f"No images found for {card_name} from set {set_code} with collector number {collector_number}")
|
|
||||||
|
|
||||||
# Main execution
|
|
||||||
if __name__ == "__main__":
|
|
||||||
# Define the path to the input CSV and output folder
|
|
||||||
csv_path = 'cards.csv' # Replace with your CSV file path
|
|
||||||
output_folder = 'downloaded_images'
|
|
||||||
|
|
||||||
# Start the download process
|
|
||||||
download_images_from_csv(csv_path, output_folder)
|
|
||||||
print("Download completed.")
|
|
Loading…
Reference in New Issue
Block a user