Sha256: 8f0e56dda8abd06da8e7f27008c6e4bed77b8500d9cd503b1f0cdfe67f1a7039
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
#!/usr/bin/env ruby require 'thor' require 'watir-webdriver' require 'webdriver-user-agent' require_relative '../lib/webrazzi/list_loader' class Cli < Thor desc 'Capture webpage', '' option :username, aliases: :u option :password, aliases: :p option :mobile, default: false option :size, default: '1280x768' def capture(file_path) username = options[:username] password = options[:password] need_auth = username && password mobile = options[:mobile] w, h = options[:size].split('x') url_list = Webrazzi::ListFile.load(file_path) driver = mobile ? Webdriver::UserAgent.driver(browser: :chrome, agent: :iphone) : :chrome client = Watir::Browser.new driver client.window.resize_to(w, h) url_list.each do |url| info url basename = filenamelize(url) access_url = need_auth ? authed_url(url, username, password) : url client.goto(access_url) client.driver.save_screenshot "#{basename}.png" end ensure client.close end default_task :capture private DOUBLE_SLASH = Regexp.new("//") SLASH = Regexp.new("/") PROTOCOL = Regexp.new("https?://") def authed_url(url, username, password) url.sub(DOUBLE_SLASH , "//#{username}:#{password}@") end def filenamelize(url) url.gsub(PROTOCOL, '').gsub(SLASH, '%') end def info(*args) puts args.join(' ') end end Cli.start(ARGV)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
webrazzi-0.1.1 | exe/webrazzi |