class Flickrchive::Config

Attributes

db[RW]
db_file[RW]
directory[RW]
excludes[RW]
log_file[RW]
log_level[RW]
sets[RW]
username[RW]

Public Class Methods

new(config_file = nil) click to toggle source
# File lib/flickrchive/config.rb, line 14
def initialize(config_file = nil)
  begin
    config = YAML.load_file(config_file || "#{ENV['HOME']}/.flickrchive.yml") 
    # do i need to keep my flickr api key secret?
    FlickRaw.api_key = config['api_key']
    FlickRaw.shared_secret = config['shared_secret']
    if config['access_token'].nil? || config['access_secret'].nil?
      config['access_token'], config['access_secret'] = auth
      File.open("#{ENV['HOME']}/.flickrchive.yml", 'w') { |f| YAML.dump(config, f) }
    end
    flickr.access_token = config['access_token']
    flickr.access_secret = config['access_secret']
    self.db_file = config['db_file']
    self.directory = File.join(config['directory'], "") # ensure dir ends in trailing slash
    self.excludes = config['excludes']
    init_logger(config)
    self.username = try_login
    self.db = Daybreak::DB.new self.db_file
    Flickrchive.logger.debug("Flickrchive initialized as #{self.username}.")
    self
  rescue => e
      # config step inits logger, just put to STDOUT until we can be sure the logger exists
      puts e
      exit
  end
end

Public Instance Methods

auth() click to toggle source
# File lib/flickrchive/config.rb, line 53
def auth
  token = flickr.get_request_token
  auth_url = flickr.get_authorize_url(token['oauth_token'], :perms => 'delete')
  puts "Open this url in your process to complete the authication process : #{auth_url}"
  puts "Copy here the number given when you complete the process."
  verify = gets.strip
  begin
    flickr.get_access_token(token['oauth_token'], token['oauth_token_secret'], verify)
    login = flickr.test.login
    return flickr.access_token, flickr.access_secret
    #puts "You are now authenticated as #{login.username} with token #{flickr.access_token} and secret #{flickr.access_secret}"
  rescue FlickRaw::FailedResponse => e
    puts "Authentication failed : #{e.msg}"
  end
end
init_logger(config) click to toggle source
# File lib/flickrchive/config.rb, line 41
def init_logger(config)
  log_level = config['log_level'] || 'debug'
  log_file = config['log_file'] || STDOUT
  Flickrchive.logger = Logger.new(log_file)
  Flickrchive.logger.level = Logger.const_get(log_level.upcase)
end
try_login() click to toggle source
# File lib/flickrchive/config.rb, line 48
def try_login
  login = flickr.test.login
  return login.username
end