Skip to content

Instantly share code, notes, and snippets.

@kindohm
Created July 6, 2015 00:41
Show Gist options
  • Save kindohm/e6909f484510738b6561 to your computer and use it in GitHub Desktop.
Save kindohm/e6909f484510738b6561 to your computer and use it in GitHub Desktop.
photo rename
var path = 'C:\\Users\\Mike\\code\\rename\\*.jpg';
var glob = require("glob")
var fs = require('fs');
var exif = require('exif');
var _ = require('lodash');
var Promise = require('bluebird');
var pathModule = require('path');
var pad = require("node-string-pad");
function createExif(file) {
return new Promise(function (resolve, reject) {
var exifImage = new exif.ExifImage({
image: file
}, function (error, exifData) {
if (error) {
reject(error);
}
var intermediate = {
fullFileName: file,
exifDateTimeOriginal: exifData.exif.DateTimeOriginal
};
resolve(intermediate);
});
});
}
glob(path, function (err, files) {
Promise.map(files, function (file) {
return createExif(file);
}).then(function (items) {
console.log(items);
var sorted = _.sortBy(items, function(item){
return item.exifDateTimeOriginal;
});
var count = 1;
_.each(sorted, function(item){
var prefix = pad(count.toString(), 3, 'LEFT', '0');
item.newFileName = pathModule.dirname(item.fullFileName) + '/' + prefix + '_' + pathModule.basename(item.fullFileName);
count++;
});
_.each(sorted, function(item){
fs.renameSync(item.fullFileName, item.newFileName);
});
console.log('done. n stuff.');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment