import os
import shutil

def sort_fits_files(root_path):
    # Zielordner einfügen
    target_folder = os.path.join(root_path, "D:\Astro Work\M45\Sorted")
    os.makedirs(target_folder, exist_ok=True)

    for folder_name, subfolders, filenames in os.walk(root_path):
        for filename in filenames:
            if filename.endswith(".fits"):
                # Datum aus dem Dateinamen extrahieren
                date = filename[:10]

                # Stichwort eintragen z.B. verwendeter Filter
                if "Lumi" in filename or "Rot" in filename or "Blau" in filename or "Grun" in filename or "Ha" in filename or "OIII" in filename or "SII" in filename:
                    # Wie willst du die neu erstellten Ordner benennen?
                    target_folder_name = ""
                    if "Lumi" in filename:
                        target_folder_name += "Lumi"
                    if "Rot" in filename:
                        target_folder_name += "Rot"
                    if "Blau" in filename:
                        target_folder_name += "Blau"
                    if "Grun" in filename:
                        target_folder_name += "Grun"
                    if "Ha" in filename:
                        target_folder_name += "Ha"
                    if "OIII" in filename:
                        target_folder_name += "OIII"
                    if "SII" in filename:
                        target_folder_name += "SII"
                    
                    # Erstellt den Zielordner mit dem Datum
                    target_date_folder = os.path.join(target_folder, date)
                    os.makedirs(target_date_folder, exist_ok=True)

                    # Erstellt die Zielordner Struktur
                    source_file = os.path.join(folder_name, filename)
                    target_keyword_folder = os.path.join(target_date_folder, target_folder_name)
                    target_subfolder = os.path.join(target_keyword_folder, target_folder_name + "_" + os.path.basename(folder_name))
                    os.makedirs(target_subfolder, exist_ok=True)

                    # Das eigentliche Kopieren der Daten
                    target_file = os.path.join(target_subfolder, filename)
                    shutil.copy(source_file, target_file)

    print("Jobs done!")

# Von wo soll er die Daten entnehmen?
sort_fits_files("D:\Astro Work\M45\RAW")