Jon
Jon est une library permettant d'outiller un workflow de gestion d'une photothéque. Actuellement la library défini deux workflow :
- Restore : Permet de restaurer un dossier, renommage et appliquer les metadata de date manquante
- Catalog : Permet de cataloguer des photos en les renommant, définissant dans un dossier avec l'arborescence année/mois/extension (ex: 2021/01/JPG). Pour ensuite les copier vers un dossier de destination
Usage
La restauration est un process parcourant tout les fichiers d'un dossier source
require "images/restauration/etape/analyse"
require "images/restauration/etape/application"
require "images/restauration/etape/traitement_dossier_extirpable"
require "images/restauration/etape/traitement_dossier_non_extirpable"
require "images/restauration/restore"
path_dossier = "/vault"
apply = true
Restauration::Restore.new(
Restauration::Etape::Analyse.new(ExtracteurParDate.new),
Restauration::Etape::TraitementDossierExtirpable.new(ExtracteurParDate.new),
Restauration::Etape::TraitementDossierNonExtirpable.new,
Restauration::Etape::Application.new(MiniExiftoolManipulateur.new)
).process(path_dossier, apply)
Le catalogage est un processus parcourants les fichiers d'un dossier source
require "images/catalogage/etape/analyse"
require "images/catalogage/etape/application"
require "images/catalogage/etape/nom_attribuer"
require "images/catalogage/etape/verificateur"
require "images/catalogage/catalog"
path_dossier = "/camera"
apply = true
destination = "/vault"
Catalogage::Catalog.new(
Catalogage::Etape::Analyse.new(ExtracteurParDate.new, MiniExiftoolManipulateur.new),
Catalogage::Etape::NomAttribuer.new,
Catalogage::Etape::Application.new(MiniExiftoolManipulateur.new),
Catalogage::Etape::Verificateur.new
).process(path_dossier, apply, destination)
L'extracteur permet d'extraire une date du nom de fichier voir différent format de fichier son pris en compte
require "images/extraction/extracteur_par_date"
extracteur = ExtracteurParDate.new
nom = "20151231_155723_011"
extracteur.extraction_du(nom) # DateTime.new(2015, 12, 31, 15, 57, 23)
extracteur.extirpabilite(nom) # true
ExifManipulateur permet de manipuler les metadatas des fichiers
require "images/exif/mini_exiftool_manipulateur"
exif_manipulateur = MiniExiftoolManipulateur.new
fichier = File.new("./photo_2021_12_25-15_52_17.jpg")
datetimeoriginal = DateTime.new(2020, 2, 1, 1, 1, 1)
exif_manipulateur.set_datetimeoriginal(fichier, datetimeoriginal) # date_time_original : 2021:12:25 15:52:17
exif_manipulateur.get_datetimeoriginal(fichier) # DateTime.new(2021, 12, 25, 15, 52, 17)
exif_manipulateur.datetimeoriginal?(fichier) # true
Installation
Exécuter :
$ bundle install
Développement
Aprés avoir récupéré le repository, exécuter bin/setup
pour installer les dépendances. Puis lancer rake spec
pour exécuter les tests automatisés.
Pour installer cette gem sur la machine, exécuter bundle exec rake install
.
Pour release une nouvelle version, mettre à jour le numéro de version dans version.rb
, puis exécuter bundle exec rake release
ce qui crée un nouveau tag git pour la version, push les commit et crée un tag et push le .gem
vers rubygems.org.