Skip to content

Instantly share code, notes, and snippets.

@jbasdf
Created June 24, 2013 00:00
Show Gist options
  • Save jbasdf/5846991 to your computer and use it in GitHub Desktop.
Save jbasdf/5846991 to your computer and use it in GitHub Desktop.
Output Camera Models for iPhoto
#!/usr/bin/env ruby
require 'rubygems'
require 'exifr'
require 'fileutils'
require 'logger'
class PictureScanner
def self.scan_files(source_dir)
cameras = {}
Dir[source_dir + '/**/*'].each do |file|
if !File.directory?(file)
begin
exif = EXIFR::JPEG.new(file)
if !cameras[exif.model]
cameras[exif.model] = 1
else
cameras[exif.model] = cameras[exif.model] + 1
end
rescue EXIFR::MalformedJPEG => ex
self.log("#{ex} : #{file}")
end
end
end
cameras.each do |model, count|
puts "#{model}: #{count}"
end
end
def self.log(text)
@logger ||= Logger.new('Camera_Scan_Errors.txt')
@logger.info(text)
end
end
PictureScanner.scan_files('/Users/jbasdf/Pictures/iPhoto Library/Originals')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment