diff options
author | Patrick Simianer <p@simianer.de> | 2017-07-05 07:54:49 +0200 |
---|---|---|
committer | Patrick Simianer <p@simianer.de> | 2017-07-05 07:54:49 +0200 |
commit | 6502b84244f232cbe97056da6585b16ed9c1f475 (patch) | |
tree | 697f63bbfc6d0a1b7b0e1e823f19422ddc6a3231 | |
parent | ca87cdfa1dc9a4dd9838ad61c4456a6fefb91b98 (diff) |
rename-pix-by-time-and-cam: fixes and additions
-rwxr-xr-x | rename-pix-by-time-and-cam | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/rename-pix-by-time-and-cam b/rename-pix-by-time-and-cam index 5681bc9..b419236 100755 --- a/rename-pix-by-time-and-cam +++ b/rename-pix-by-time-and-cam @@ -3,6 +3,11 @@ cams = { "SIGMA DP2 Merrill" => "dp2m", "FP2" => "fp2", "Canon EOS 1000D" => "1000d", "iPad Air" => "ipadair", "iPhone 5" => "iphone5" } cams.default = "default" +file_ext = ARGV[0] +if !file_ext + file_ext = "jpg" +end + ids = [] while line = STDIN.gets # list of files a = line.split('.') @@ -13,16 +18,21 @@ end used_prefixes = {} # prefix -> 0..N ids.each do |i| - exif = `exiftool #{i}.jpg 2>/dev/null` + exif = `exiftool #{i}.#{file_ext} 2>/dev/null` a = exif.split "\n" timestamp = nil + timestamp_bak = nil cam = nil + cam_bak = nil a.each { |j| if j.start_with? "Camera Model Name" cam = j + elsif j.start_with? "Model" + cam_bak = j elsif j.start_with? "Date/Time Original" timestamp = j - next + elsif j.start_with? "File Modification Date/Time" + timestamp_bak = j else next end @@ -33,8 +43,18 @@ ids.each do |i| new_prefix = "" add = 0 begin - t = timestamp.split(':',2)[1].strip.gsub(/(:|\ )/, '-') - c = cams[cam.split(':',2)[1].strip] + if timestamp + t = timestamp.split(':',2)[1].strip.gsub(/(:|\ )/, '-') + elsif timestamp_bak + t = timestamp_bak.split(':',2)[1].strip.gsub(/(:|\ )/, '-') + end + if cam + c = cams[cam.split(':',2)[1].strip] + elsif cam_bak + c = cams[cam_bak.split(':',2)[1].strip] + else + c = "unknown-device" + end new_prefix = "#{t}-#{c}" add = 1 rescue |