class Ruboty::YMCrawl::DataManager

Public Class Methods

new() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 22
def initialize
   @setting = JSON.parse( File.open(SETTING_FILE_PATH).read)
   puts "setting: #{@setting}"
   puts "YMCrawlfile valid"
   puts JSON::Validator.fully_validate(SCHEMA_FILE_PATH, @setting, :insert_defaults => true).to_s
   @sites = get_sites_json(SITE_JSON_PATH)
   File.write( SITE_JSON_PATH, JSON.unparse(@sites) ) unless FileTest.exist?(SITE_JSON_PATH)
   puts "uploader valid"
   puts "uploder data: #{get_uploader_data}"   
   puts JSON::Validator.fully_validate(UPLOADER_SCHEMA_FILE_PATH, get_uploader_data, :insert_defaults => true).to_s
end

Public Instance Methods

get_current_access_token() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 60
def get_current_access_token;     get_uploader_data["access_token"]                end
get_current_app_key() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 61
def get_current_app_key;          ENV["#{@setting["save_to"].upcase }_APP_KEY"]    end
get_current_app_secret() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 62
def get_current_app_secret;       ENV["#{@setting["save_to"].upcase }_APP_SECRET"] end
get_current_uploder_info(url) click to toggle source

URLのドメインに合致するsite情報を返す

# File lib/ruboty/ymcrawl/main.rb, line 42
def get_current_uploder_info(url)
   host = URI(url).host
   # ハッシュのkeyがs[0],valueがs[1]に入る
   @sites.each{ |s| return s[1] if s[1]["host"] == host }
   return @sites["default"]
end
get_save_to() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 58
def get_save_to;                  @setting["save_to"]                              end
get_setting() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 57
def get_setting;                  @setting                                         end
get_sites_json(path) click to toggle source

各サイトごとの、画像取得のためのcssセレクタを記載したjsonをファイルから取得して返す

# File lib/ruboty/ymcrawl/main.rb, line 35
def get_sites_json(path)
   path = FileTest.exist?(path) ? path : @setting["site_json"]
   puts "reading site json file from #{path}"
   JSON.parse( open(path).read)
end
get_uploader_data() click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 59
def get_uploader_data;            @setting["uploader"][get_save_to]                end
update_access_token(uploader_name, access_token) click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 49
def update_access_token(uploader_name, access_token)
   @setting["uploader"][uploader_name]["access_token"] = access_token if @setting["uploader"][uploader_name] != access_token
   puts "setting: #{@setting}"
   open(SETTING_FILE_PATH, 'w') do |io|
           JSON.dump(@setting, io)
   end
end