From 0d7a847ecd56b227d4b29201dafa184a2a60fcdb Mon Sep 17 00:00:00 2001 From: Tykayn Date: Thu, 21 Dec 2023 16:09:19 +0100 Subject: [PATCH] =?UTF-8?q?detect=20saut=20de=20s=C3=A9quence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hugin-gopro-fusion/find_min_max.ts | 49 +++++++++++++++++++++--------- hugin-gopro-fusion/main.ts | 11 +++++-- 2 files changed, 43 insertions(+), 17 deletions(-) diff --git a/hugin-gopro-fusion/find_min_max.ts b/hugin-gopro-fusion/find_min_max.ts index 88d1e545..6976f566 100644 --- a/hugin-gopro-fusion/find_min_max.ts +++ b/hugin-gopro-fusion/find_min_max.ts @@ -3,9 +3,14 @@ import path from "path"; // @ts-ignore import minimist from 'minimist'; +import * as childProcess from 'child_process'; let mini_arguments: any = minimist(process.argv.slice(2)) +let enable_batch_move_assembled_files = false; + +let should_exec_geovisio_upload = false; + let folder = `/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/` let subfolder = `` @@ -24,15 +29,21 @@ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number } let minNumber: number = 0; let maxNumber: number = 0; + let previousFileName = 0 // Boucler sur chaque fichier JPG dans le dossier fs.readdirSync(dirPath).forEach(file => { + + let currentFileName = path.extname(file) // Vérifier si le fichier est un fichier JPG - if (path.extname(file) === '.jpg' || path.extname(file) === '.JPG') { + if (currentFileName === '.jpg' || currentFileName === '.JPG') { // Éxtraire le nombre du nom de fichier let matches: any = file.match(/(\d+)/); if (matches && matches.length && matches[0]) { let number = parseInt(matches[0]); + if (previousFileName + 1 !== number) { + console.log('saut de nombre / séquence à ', previousFileName, number) + } // Sauver le nombre minimal et maximal trouvé jusqu'à présent if (minNumber === 0 && number > 0) { minNumber = number; @@ -40,6 +51,8 @@ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number } if (number > maxNumber) { maxNumber = number; } + + previousFileName = number } } }); @@ -60,7 +73,7 @@ bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin- `) const hugin_assemblages_script_output_path = '/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/hugin_assemblages_script_output'; -const envois_todo_panoramax = '/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/PANORAMAX_envois_todo/'+subfolder; +const envois_todo_panoramax = '/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/PANORAMAX_envois_todo/' + subfolder; const startNumber = result.min; const endNumber = result.max; @@ -72,19 +85,20 @@ function renameFile(fileName: string): void { if (fs.existsSync(filePath)) { const newFileName = `assemblage_0${startNumber}.jpg`; - const newFilePath = path.join(envois_todo_panoramax , newFileName); + const newFilePath = path.join(envois_todo_panoramax, newFileName); + + console.log('rename: ', filePath, newFilePath) - console.log('rename: ', filePath , newFilePath) - fs.renameSync(filePath, newFilePath); - }else{ + } else { console.log('ce fichier est inexistant', filePath) } } function createDirectory(folderName: string): void { + console.log('createDirectory', folderName) if (!fs.existsSync(folderName)) { fs.mkdirSync(folderName); } @@ -106,25 +120,28 @@ function getFileNames(): string[] { * @param startNumber * @param endNumber */ -function batch_move_assembled_files(startNumber:number,endNumber:number){ +function batch_move_assembled_files(startNumber: number, endNumber: number) { const fileNames = getFileNames(); + console.log('fileNames', fileNames) for (let i = startNumber; i <= endNumber; i++) { const fileName = `assemblage_0${i}.jpg`; console.log('fileName', fileName) - // renameFile(fileName); + renameFile(fileName); } } -console.log(' déplacer les assemblages dans '+envois_todo_panoramax, startNumber, endNumber) +console.log(' déplacer les assemblages dans ' + envois_todo_panoramax, startNumber, endNumber) createDirectory(envois_todo_panoramax); -batch_move_assembled_files(startNumber,endNumber) +if (enable_batch_move_assembled_files) { + + batch_move_assembled_files(startNumber, endNumber) +} -import * as childProcess from 'child_process'; function executeCommand(command: string, folderName: string): void { const fullCommand = `${command} "${folderName}"`; @@ -140,13 +157,17 @@ function executeCommand(command: string, folderName: string): void { }); } -function exec_geovisio(envois_todo_panoramax:string): void { +function exec_geovisio(envois_todo_panoramax: string): void { const folderName = envois_todo_panoramax; const command = 'geovisio upload --api-url https://panoramax.openstreetmap.fr'; executeCommand(command, folderName); } -exec_geovisio(envois_todo_panoramax); +if (should_exec_geovisio_upload) { + exec_geovisio(envois_todo_panoramax); +} else { + console.log(' l envoi vers geovisio automatique est désactivé ') +} -console.log("exécuter geovisio upload") \ No newline at end of file +console.log("exécuter geovisio upload") diff --git a/hugin-gopro-fusion/main.ts b/hugin-gopro-fusion/main.ts index a3da88ac..7d128906 100644 --- a/hugin-gopro-fusion/main.ts +++ b/hugin-gopro-fusion/main.ts @@ -3,7 +3,8 @@ conversion de données exif Utilisation: - ts-node main.ts --goproMin=80800 --goproMax=80801 --goproSubFolder="rouen_oct23" + + ts-node main.ts --goproMin=54903 --goproMax=56267 --goproSubFolder="INBOX_a_assembler/camaret1" **/ @@ -46,8 +47,6 @@ if (mini_arguments['goproMax']) { } -let hugin_batch_command = 'bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax - let extension_photo_source = 'jpg' extension_photo_source = 'JPG' @@ -155,10 +154,16 @@ function makeBashScriptHugin(minmax: any) { // console.log('ptoContent', ptoContent) writeFile(ptoFileName, ptoContent) + }else{ + console.log('l écriture de fichiers PTO a été désactivée') } } + let hugin_batch_command = 'bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax + + + if (addExifToolInScript) { scriptsContent += '\n # complétion des données gps depuis une des photos assemblées' + '\n' + hugin_batch_command + '\n'