up script

This commit is contained in:
Tykayn 2023-12-21 22:08:39 +01:00 committed by tykayn
parent 0d7a847ecd
commit c00b62f20f
2 changed files with 59 additions and 26 deletions

View File

@ -11,6 +11,8 @@ let enable_batch_move_assembled_files = false;
let should_exec_geovisio_upload = false; let should_exec_geovisio_upload = false;
const reallyMoveFiles = false;
let folder = `/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/` let folder = `/home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_a_assembler/`
let subfolder = `` let subfolder = ``
@ -41,7 +43,7 @@ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number }
if (matches && matches.length && matches[0]) { if (matches && matches.length && matches[0]) {
let number = parseInt(matches[0]); let number = parseInt(matches[0]);
if (previousFileName + 1 !== number) { if ((previousFileName + 1) !== number) {
console.log('saut de nombre / séquence à ', previousFileName, number) console.log('saut de nombre / séquence à ', previousFileName, number)
} }
// Sauver le nombre minimal et maximal trouvé jusqu'à présent // Sauver le nombre minimal et maximal trouvé jusqu'à présent
@ -65,10 +67,18 @@ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number }
let result = findMinMaxNumberOfPhotos(folder + subfolder) let result = findMinMaxNumberOfPhotos(folder + subfolder)
console.log('result', result) console.log('result', result)
console.log("script :\n", ` console.log("script à lancer:\n", `
ts-node /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/main.ts --goproSubFolder=INBOX_a_assembler/${subfolder} # création des fichiers d'assemblage PTO et du script d'exécution en batch
bash /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_PTO_hugin/hugin_executor_from_${result.min}_to_${result.max}.sh ts-node /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/main.ts --goproSubFolder=INBOX_a_assembler/${subfolder}
bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ${result.min} ${result.max} INBOX_a_assembler/${subfolder}
# invocation de l'éxécution de la séquence d'assemblage
bash /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/INBOX_PTO_hugin/hugin_executor_from_${result.min}_to_${result.max}.sh
# application des informations exif
bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ${result.min} ${result.max} INBOX_a_assembler/${subfolder}
# envoi vers panoramax
geovisio_cli upload --api-url https://panoramax.openstreetmap.fr /home/poule/encrypted/stockage-syncable/photos/imageries/gopro/PANORAMAX_envois_todo/${subfolder}
`) `)
@ -77,8 +87,6 @@ const envois_todo_panoramax = '/home/poule/encrypted/stockage-syncable/photos/im
const startNumber = result.min; const startNumber = result.min;
const endNumber = result.max; const endNumber = result.max;
// const startNumber = 1;
// const endNumber = 5;
function renameFile(fileName: string): void { function renameFile(fileName: string): void {
const filePath = path.join(hugin_assemblages_script_output_path, fileName); const filePath = path.join(hugin_assemblages_script_output_path, fileName);
@ -87,20 +95,24 @@ function renameFile(fileName: string): void {
const newFileName = `assemblage_0${startNumber}.jpg`; 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)
if (reallyMoveFiles) {
fs.renameSync(filePath, newFilePath); fs.renameSync(filePath, newFilePath);
}
} else { } else {
console.log('ce fichier est inexistant', filePath) console.log('ce fichier est inexistant', filePath)
} }
console.log('fin de déplacement des fichiers assemblés')
} }
function createDirectory(folderName: string): void { function createDirectory(folderName: string): void {
console.log('createDirectory', folderName) console.log('createDirectory', folderName)
if (!fs.existsSync(folderName)) { if (!fs.existsSync(folderName)) {
fs.mkdirSync(folderName); fs.mkdirSync(folderName, { recursive: true });
}else{
console.log('folder already existing', folderName)
} }
} }
@ -127,20 +139,11 @@ function batch_move_assembled_files(startNumber: number, endNumber: number) {
for (let i = startNumber; i <= endNumber; i++) { for (let i = startNumber; i <= endNumber; i++) {
const fileName = `assemblage_0${i}.jpg`; 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)
createDirectory(envois_todo_panoramax);
if (enable_batch_move_assembled_files) {
batch_move_assembled_files(startNumber, endNumber)
}
function executeCommand(command: string, folderName: string): void { function executeCommand(command: string, folderName: string): void {
@ -171,3 +174,11 @@ if (should_exec_geovisio_upload) {
} }
console.log("exécuter geovisio upload") console.log("exécuter geovisio upload")
createDirectory(envois_todo_panoramax);
if (enable_batch_move_assembled_files) {
console.log(' déplacer les assemblages dans ' + envois_todo_panoramax, startNumber, endNumber)
batch_move_assembled_files(startNumber, endNumber)
}

View File

@ -120,16 +120,23 @@ function findMinMaxNumberOfPhotos(dirPath: string): { min: number, max: number }
function makeBashScriptHugin(minmax: any) { function makeBashScriptHugin(minmax: any) {
console.log('makeBashScriptHugin') let count_pto_made_files =0;
// in each increment of a pair of photos, build a pto referencing absolute paths // in each increment of a pair of photos, build a pto referencing absolute paths
// write the pto in output // write the pto in output
console.log('parseInt(minmax.min)', parseInt(minmax.min)) console.log('makeBashScriptHugin: parseInt(minmax.min)', parseInt(minmax.min))
console.log('makeBashScriptHugin: gopro_fusion_separated_photos_folder', gopro_fusion_separated_photos_folder)
if (!disable_pto_write) {
console.log('makeBashScriptHugin: début de l\'écriture des fichiers PTO')
}
for (let ii: any = parseInt(minmax.min); ii <= parseInt( for (let ii: any = parseInt(minmax.min); ii <= parseInt(
minmax.max minmax.max
); ii++) { ); ii++) {
let currentNumber = `${previous_zero}${ii}`; let currentNumber = `${previous_zero}${ii}`;
// let currentNumber = '080096';
let ptoContent = makePto(absolutePath, currentNumber); let ptoContent = makePto(absolutePath, currentNumber);
let ptoFileName = `merging_${currentNumber}.pto` let ptoFileName = `merging_${currentNumber}.pto`
let stitchedFileName = `assemblage_${currentNumber}` let stitchedFileName = `assemblage_${currentNumber}`
@ -145,20 +152,30 @@ function makeBashScriptHugin(minmax: any) {
'--stitching ' + '--stitching ' +
'--prefix=' + stitchedFileName + '--prefix=' + stitchedFileName +
'\n' + '\n' +
// ' else' +
// '\n' +
// ' echo "le fichier assemblé '+stitchedFileName+' manque mais le fichier de caméra gopro front n\'existe pas."' +
'\n' +
// ' else' +
// '\n' +
// ' echo "le fichier assemblé '+stitchedFileName+' existe déjà"' +
'\n' +
' fi' + ' fi' +
'\n' + '\n' +
'fi' 'fi'
if (!disable_pto_write) { if (!disable_pto_write) {
// console.log('ptoContent', ptoContent)
writeFile(ptoFileName, ptoContent) writeFile(ptoFileName, ptoContent)
count_pto_made_files++;
}else{ }else{
console.log('l écriture de fichiers PTO a été désactivée') console.log('l écriture de fichiers PTO a été désactivée')
} }
} }
if (!disable_pto_write) {
console.log('fin de l\'écriture des '+count_pto_made_files+' fichiers PTO')
}
let hugin_batch_command = 'bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax let hugin_batch_command = 'bash /home/poule/encrypted/stockage-syncable/www/development/html/scripts/hugin-gopro-fusion/exif_batch.sh ' + goproMin + ' ' + goproMax
@ -182,7 +199,12 @@ function makeBashScriptHugin(minmax: any) {
} }
function makePto(absolutePath: string, currentNumber: string) { /**
* génère un fichier pto sous forme de String
* @param absolutePath
* @param currentNumber
*/
function makePto(absolutePath: string, currentNumber: string):string {
let front_picture_name = absolutePath + '/GF' + currentNumber + '.' + extension_photo_source; let front_picture_name = absolutePath + '/GF' + currentNumber + '.' + extension_photo_source;
let back_picture_name = absolutePath + '/GB' + currentNumber + '.' + extension_photo_source; let back_picture_name = absolutePath + '/GB' + currentNumber + '.' + extension_photo_source;