r""" Code Python 3.12, encod早 en UTF-8

Sert à convertir tous les fichiers *.jpg ou *.png en *.webp
via une interface graphique.

version 1 : 2025-01-10 15:39 """

# Les importations =============================================================
import os; import platform
import tkinter as Tk; from tkinter import *
from tkinter import messagebox;from tkinter import filedialog

# Affectations des constantes pour les noms ====================================
NL = "\n"; 

# Les déclarations des variables globales pour les fichiers ====================
gPath = os.path.abspath("."); SEP="/"
if platform.system() == "Windows": SEP="\\"#; gPath=os.path.abspath("C:\\Users");
path_exe = gPath+SEP+"cwebp.exe" # chemin complet
dossier_source ="" # contenant les fichiers images à convertir
dossier_desti  ="" # contenant les fichiers images convertis

if not os.path.exists(path_exe):
  dossier = filedialog.askdirectory(initialdir = gPath, title = "Sélection du dossier contenant cwebp.exe")
  if len(dossier)==0 : exit("Pas de dossier sélectionné !")
  dossier = dossier.replace("/",SEP) # NB : Sans le slash (ou anti-slash) final
  path_exe = dossier+SEP+"cwebp.exe"
  if not os.path.exists(path_exe): exit("Pas de cwebp.exe dans le dossier sélectionné")

print("chemin EXE =",path_exe)

ext = ".jpg" # TODO admettre d'autres extensions

dossier = filedialog.askdirectory(initialdir = gPath, title = "Sélection du dossier contenant les *"+ext)
if len(dossier)==0 : exit("Pas de dossier sélectionné !")
dossier_source = dossier.replace("/",SEP) # NB : Sans le slash (ou anti-slash) final

print("Dossier source =",dossier_source)

dossier = filedialog.askdirectory(initialdir = dossier_source, title = "Sélection du dossier de destination")
if len(dossier)==0 : exit("Pas de dossier sélectionné !")
dossier_desti = dossier.replace("/",SEP) # NB : Sans le slash (ou anti-slash) final

print("Dossier destination =",dossier_desti)

# for %I in (Dossier_source\*.jpg) do ( Dossier_exe\cwebp.exe %I -o Dossier_destination\%~nI.webp )
commande_DOS = "for %I in ("+dossier_source+"\\*.jpg) do ( "+path_exe+" %I -o "+dossier_desti+"\\%~nI.webp )"

print(commande_DOS)

os.system(commande_DOS)

messagebox.showinfo("","Fin du programme")
exit("Fin du programme")



