From 4a57ffccf212bc1cca59ff1a3907bc9bf9f0510d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sun, 16 Mar 2025 23:34:26 +0100 Subject: [PATCH] ajout du script trierPhotos.php --- local/bin/trierPhotos.php | 223 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100755 local/bin/trierPhotos.php diff --git a/local/bin/trierPhotos.php b/local/bin/trierPhotos.php new file mode 100755 index 0000000..d4ca7fa --- /dev/null +++ b/local/bin/trierPhotos.php @@ -0,0 +1,223 @@ +#!/usr/bin/php +12)) { + unset($dateTimeOriginal); + } + if (isset($dateTimeOriginal) && is_array($dateTimeOriginal) && ($dateTimeOriginal['d'] < 01 || $dateTimeOriginal['d'] >31)) { + unset($dateTimeOriginal); + } + if (isset($dateTimeOriginal) && is_array($dateTimeOriginal) && ($dateTimeOriginal['y'] < 1900 || $dateTimeOriginal['d'] >2021)) { + unset($dateTimeOriginal); + } + } + + + // Récupération de la date de modification + if ($traitement_ok && !isset($dateTimeOriginal)) { + $dateTimeOriginal_explode = explode(":", date("Y:m:d", filemtime($entry))); + if (isset($dateTimeOriginal_explode)) { + $dateTimeOriginal['y'] = $dateTimeOriginal_explode[0]; + $dateTimeOriginal['m'] = $dateTimeOriginal_explode[1]; + $dateTimeOriginal['d'] = $dateTimeOriginal_explode[2]; + } + } + + + + // Création des dossiers et déplacement du fichier + if ($traitement_ok && isset($dateTimeOriginal) && is_array($dateTimeOriginal)) { + + // TRIER PAR DATE + + $rep_dest = $dateTimeOriginal['y'] ."/". $dateTimeOriginal['m'] ."/". $dateTimeOriginal['d']; + + // TRIER PAR APPAREIL +/* + if (isset($file_exif) && is_array($file_exif) && + array_key_exists('Make', $file_exif) && + $file_exif['Make'] !== null ) { + $rep_dest = $file_exif['Make']; + } + + if (isset($file_exif) && is_array($file_exif) && array_key_exists('Model', $file_exif)) { + $rep_dest .= '-' . $file_exif['Model']; + } + + if (isset($file_exif) && is_array($file_exif) && array_key_exists('InternalSerialNumber', $file_exif) && + $file_exif['InternalSerialNumber'] !== null ) { + $rep_dest .= '-'.$file_exif['InternalSerialNumber']; + } +*/ + // TRAITEMENT COMMUN + + // Création du dossier destination + if (!empty($rep_dest)) { + $rep_dest = str_replace("\0", '', $rep_dest); + } + if (!file_exists($rep_dest)) { + + // Vérifie et nettoie la chaîne de caractères null + if (!empty($rep_dest)) { + if (mkdir($rep_dest, 0777, true)) { + echo $rep_dest . " créé.\n"; + } else { + die('Echec lors de la création des répertoires...'."\n"); + } + } + } + + // Déplacement + + $file_dest = $rep_dest."/".$entry; + + if (!file_exists($file_dest)) { + rename($entry, $file_dest); + $undoCmd .= "mv \"".$file_dest."\" \"".$entry."\"\n"; + $message .= " => ".$file_dest."\n"; + } else { + $md5_file_src = md5_file($entry); + $md5_file_dst = md5_file($file_dest); + if ($md5_file_src == $md5_file_dst) { + $message .= " [ERREUR] ".$file_dest." existe déjà ! Destruction car même empreinte $md5_file_src / $md5_file_dst\n"; + unlink($entry); + } else { + $message .= " [ERREUR] ".$file_dest." existe déjà ! Mais pas avec la même empreinte.\n"; + } + } + + + // Ecriture du log + file_put_contents($file_undo_str, $undoCmd, FILE_APPEND); + file_put_contents($file_log_out_str, $message, FILE_APPEND); + echo $message; + } + + + } + } + + closedir($handle); + +} +