Skip to content

Instantly share code, notes, and snippets.

@miio
Last active December 18, 2015 00:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save miio/5698689 to your computer and use it in GitHub Desktop.
Save miio/5698689 to your computer and use it in GitHub Desktop.
require 'flickraw'
require 'open-uri'
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.each do |e|
flickr_date_time = self.parse_time(@flickr.photos.getExif(photo_id: e.id).exif.to_a.select{|e| e.tag == 'DateTimeOriginal'}.first.raw)
local_date_time = self.parse_time(EXIFR::JPEG::new("#{dir}/#{to_filename}#{ext}").date_time)
return true if flickr_date_time == local_date_time
end
false
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