import os
import pandas as pd
import requests
from pathlib import Path
from urllib.parse import quote  # Add import for URL encoding


excel_fil = 'ls-exports.xlsx'  # Skift denne til stien til din Excel-fil
output_folder = 'downloaded_images'  # Mappe til gemte billeder


def download_images_with_encoding():
    # Indlæs Excel-fil
    if not os.path.exists(excel_fil):
        print(f"Excel-filen '{excel_fil}' findes ikke.")
        return
    
    # Opret en mappe til billederne, hvis den ikke eksisterer
    Path(output_folder).mkdir(parents=True, exist_ok=True)

    # Læs Excel-fil og URL-kolonne
    data = pd.read_excel(excel_fil)
    url_column = 'image_name'  # Navnet på kolonnen med billed-URL'er

    # Kontroller, at kolonnen eksisterer
    if url_column not in data.columns:
        print(f"Kolonnen '{url_column}' findes ikke i Excel-filen.")
    else:
        # Download billeder
        for index, row in data.iterrows():
            image_name = row[url_column]
            url = 'https://livets-spejl.dk/image/' + quote(image_name)  # URL encode the image name
            try:
                response = requests.get(url, stream=True)
                
                if response.status_code == 200:
                    # Opret et filnavn baseret på det faktiske filnavn uden mappenavn
                    file_name = f"{output_folder}/{os.path.basename(image_name)}"
                    
                    # Gem billedet
                    with open(file_name, 'wb') as f:
                        for chunk in response.iter_content(1024):
                            f.write(chunk)
                    print(f"Billede {index} hentet og gemt som {file_name}")
                else:
                    print(f"Kunne ikke hente billede fra {url} - statuskode: {response.status_code}")
            except Exception as e:
                print(f"Fejl ved hentning af billede fra {url}: {e}")

# Function to clear the download folder
def clear_download_folder():
    output_folder = 'downloaded_images'  # Mappe til gemte billeder
    folder = Path('downloaded_images')
    for file in folder.glob('*'):
        try:
            file.unlink()
            print(f"Deleted {file}")
        except Exception as e:
            print(f"Could not delete {file}: {e}")


# Kør funktionen
clear_download_folder()

download_images_with_encoding();
