class Ruboty::YMCrawl::Core
Public Class Methods
new()
click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 66 def initialize @data = DataManager.instance if @data.get_save_to != "local" @uploader = Uploader.new(@data.get_save_to, @data.get_current_app_key, @data.get_current_app_secret, @data.get_current_access_token) puts "env dropbox app key: #{@data.get_current_app_key}" puts "env dropbox app sec: #{@data.get_current_app_secret}" end end
Public Instance Methods
crawl(urls)
click to toggle source
画像をクロールして保存する。保存したファイルのパスを返す。
# File lib/ruboty/ymcrawl/main.rb, line 78 def crawl(urls) puts "in crawl" ncrawler = Crawler.new(@data.get_setting["dst_dir"], @data.get_current_uploder_info(urls[0]), @data.get_setting["wait_time"]) urls.map{ |v| ncrawler.save_images(v) } end
get_uploader()
click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 122 def get_uploader; @uploader end
start(urls)
click to toggle source
# File lib/ruboty/ymcrawl/main.rb, line 75 def start(urls); upload crawl(urls) end
upload(file_dirs)
click to toggle source
画像を指定した先へアップロード
# File lib/ruboty/ymcrawl/main.rb, line 85 def upload(file_dirs) puts "in upload" setting = @data.get_setting return nil if @data.get_save_to == "local" @uploader.login(@data.get_current_access_token) zip_paths = file_dirs.map{ |dir| zip_dir(dir) } encode = (ENV["LANG"] == nil) ? "utf-8" : ENV["LANG"] begin file_dirs.each{ |dir| FileUtils::remove_entry_secure( dir.force_encoding(encode) ) } rescue if encode != "ascii-8bit" encode = "ascii-8bit" retry end end share_paths = [] zip_paths.each do |path| puts "uploading #{path} to dropbox" put_result = @uploader.put([path]) File::delete(path) share_paths << @uploader.get_share_link(put_result["path"])["url"] end return share_paths end
zip_dir(src)
click to toggle source
指定されたディレクトリ以下のファイルをzipにする。返り値はzipのパス
# File lib/ruboty/ymcrawl/main.rb, line 112 def zip_dir(src) dst = "#{src}.zip" Zip::Archive.open(dst, Zip::CREATE) do |ar| Dir.glob("#{src}/*").each do |item| ar.add_file(item) end end dst end