Skip to content

Instantly share code, notes, and snippets.

@niku
Forked from miio/flickr_exif.rb
Last active December 18, 2015 01:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save niku/5706563 to your computer and use it in GitHub Desktop.
Save niku/5706563 to your computer and use it in GitHub Desktop.
require 'flickraw'
require 'exifr'
class ConnectionAdapter
def connection
FlickRaw.api_key = ""
FlickRaw.shared_secret = ""
flickr.access_token = ""
flickr.access_secret = ""
flickr
end
end
class Duplicator
def initialize
@adapter = ConnectionAdapter.new
@flickr = @adapter.connection
@user = @flickr.test.login
end
def search_by_filename filename
@flickr.photos.search user_id: @user.id, text: filename
end
def check_by_exif dir, to_filename, ext, from_file = nil
target = self.search_by_filename to_filename
target.any? do |e|
flickr_date_time = self.parse_time(@flickr.photos.getExif(photo_id: e.id).exif.to_a.find{|e| e.tag == 'DateTimeOriginal'}.raw)
local_date_time = self.parse_time(EXIFR::JPEG::new("#{dir}/#{to_filename}#{ext}").date_time)
flickr_date_time == local_date_time
end
end
def parse_time time
# http://blog.hacklife.net/archives/51297712.html
time = time.to_s.gsub(/\-/, '/')
t = time.split(/[\/ :.]/)[0..5]
Time.utc(*t)
end
end
d = Duplicator.new
root = "/Volumes/Miio-no-TOSHIBA/DCIM/100CANON"
Dir.chdir( root )
Dir.glob("*.JPG").each do |f|
p f
p d.check_by_exif root, f.sub(/\.JPG/,''), '.JPG'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment