module FbExif
Constants
- DateTimeOriginal
- ExposureTime
- FNumber
- FocalLength
- GPSLatitude
- GPSLatitudeRef
- GPSLongitude
- GPSLongitudeRef
- ISO
- Make
- Model
- Orientation
- VERSION
Private Class Methods
add_meta_data_to_image(image_path, meta_data)
click to toggle source
# File lib/fb_exif.rb, line 36 def FbExif.add_meta_data_to_image(image_path, meta_data) image = MiniExiftool.new image_path #Date and Time if meta_data["Taken"] datetime = Time.at(meta_data["Taken"].to_i).strftime('%F %T') elsif meta_data["Modified"] datetime = Time.at(meta_data["Modified"].to_i).strftime('%F %T') else datetime = DateTime.parse(meta_data["Created"]).strftime('%F %T') end image.DateTimeOriginal = datetime #Orientation if meta_data["Orientation"] image.Orientation = meta_data["Orientation"] end #F-Stop if meta_data["F-Stop"] image.FNumber = meta_data["F-Stop"].to_i end #Exposure if meta_data["Exposure"] image.ExposureTime = meta_data["Exposure"].to_i end #ISO Speed if meta_data["ISO Speed"] image.ISO = meta_data["ISO Speed"] end #Focal Length if meta_data["Focal Length"] image.FocalLength = meta_data["Focal Length"].to_i end #Make and Model if meta_data["Camera Make"] image.Make = meta_data["Camera Make"] end if meta_data["Camera Model"] image.Model = meta_data["Camera Model"] end #GPS if meta_data["Latitude"] image.GPSLatitude = meta_data["Latitude"] image.GPSLatitudeRef = meta_data["Latitude"] image.GPSLongitude = meta_data["Longitude"] image.GPSLongitudeRef = meta_data["Longitude"] end image.save print '.' end
gather_meta_data(image)
click to toggle source
# File lib/fb_exif.rb, line 24 def FbExif.gather_meta_data(image) meta_data = Hash.new meta_data["Created"] = image.css('div > div.meta').first.inner_html datas = image.css('div table tr') datas.each do |data| meta_data[data.css('th').inner_html] = data.css('td').inner_html end return meta_data end
process_album(album)
click to toggle source
# File lib/fb_exif.rb, line 94 def FbExif.process_album(album) html = File.open(@photo_dir + album + "/index.htm") { |f| Nokogiri::HTML(f) } images = html.css('.contents .block') images.each do |image| image_path = @photo_dir + album + '/' + image.css('img').attr('src') meta_data = FbExif.gather_meta_data(image) FbExif.add_meta_data_to_image(image_path, meta_data) end end
Public Instance Methods
start(photo_dir)
click to toggle source
- Author
-
Cameron Bulock (cameron@bulock.com)
- Copyright
-
Copyright © 2016 Cameron Bulock
- License
-
MIT
# File lib/fb_exif.rb, line 13 def start(photo_dir) @photo_dir = photo_dir albums = Dir.entries(@photo_dir).select {|entry| File.directory? File.join(@photo_dir,entry) and !(entry =='.' || entry == '..') } albums.each do |album| FbExif.process_album(album) end end