lorcana/saveImages.py

47 lines
1.4 KiB
Python
Raw Normal View History

import os
import pandas as pd
import requests
import re
2023-11-14 16:30:28 +00:00
import json
# Function to clean filename by removing problematic characters
def clean_filename(filename):
return re.sub(r'[\\/*?:"<>|]', '', filename)
2023-11-14 16:30:28 +00:00
# Load set names from JSON file
with open('sets.json', 'r') as file:
set_names_mapping = json.load(file)
# Read the CSV file
data = pd.read_csv('data.csv')
# Create a folder named 'images' if it doesn't exist
images_folder = 'images'
os.makedirs(images_folder, exist_ok=True)
# Iterate through the rows
for index, row in data.iterrows():
card_set_id = row['card_set_id']
2023-11-14 16:30:28 +00:00
set_id = row['number']
name = row['name']
image_url = row['image']
2023-11-14 16:30:28 +00:00
# Get set name from mapping
set_name = set_names_mapping.get(str(card_set_id), f"set_{card_set_id}")
# Create a folder for the set_name if it doesn't exist
card_set_folder = os.path.join(images_folder, set_name)
os.makedirs(card_set_folder, exist_ok=True)
# Get the image
response = requests.get(image_url)
if response.status_code == 200:
# Clean the filename
2023-11-14 16:30:28 +00:00
image_filename = clean_filename(f"{set_id} - {name}.webp") # Adjust the extension if needed
image_path = os.path.join(card_set_folder, image_filename)
with open(image_path, 'wb') as f:
f.write(response.content)
print(f"Image saved: {image_filename}")
else:
print(f"Failed to download image for {name}")