class Kindai::CLI
Constants
- BANNER
Public Class Methods
execute(stdout, arguments=[])
click to toggle source
# File lib/kindai/cli.rb, line 19 def self.execute(stdout, arguments=[]) if arguments.first == 'publish' arguments.shift self.execute_publish(stdout, arguments) else self.execute_download(stdout, arguments) end end
execute_download(stdout, arguments)
click to toggle source
# File lib/kindai/cli.rb, line 28 def self.execute_download(stdout, arguments) config = { } parser = OptionParser.new(BANNER) {|opt| opt.on('-o OUTPUT_DIRECTORY', '--output', 'specify output directory') {|v| config[:base_path] = v } opt.on('--debug', 'enable debug mode') {|v| Kindai::Util.debug_mode! } opt.on('--retry TIMES', 'retry times (default is 30)') {|v| config[:retry_count] = v.to_i } opt.on('--publish_iphone', 'publish for iphone') {|v| config[:publish_iphone] = true } opt.on('--publish_ipad', 'publish for ipad') {|v| config[:publish_ipad] = true } opt.on('--publish_kindle', 'publish for kindle') {|v| config[:publish_kindle] = true } opt.on('--no_trimming', "don't trimming") {|v| config[:no_trimming] = true } opt.parse!(arguments) } if arguments.empty? stdout.puts parser.help exit 1 end arguments.each{ |arg| if URI.regexp =~ arg and URI.parse(arg).is_a? URI::HTTP Kindai::Interface.download_url arg, config else Kindai::Interface.download_keyword arg, config end } end
execute_publish(stdout, arguments)
click to toggle source
# File lib/kindai/cli.rb, line 69 def self.execute_publish(stdout, arguments) config = { } parser = OptionParser.new(BANNER) {|opt| opt.on('--position TRIMMING_POSITION', 'specify trimming position (example:') {|v| m = v.match(/^(\d+)x(\d+)\+(\d+)\+(\d+)$/) unless m raise "invalid trimming position( example: 3200x2450+320+380, WIDTHxHEIGHT+OFFSET_X+OFFSET_Y )" end config[:trimming] = {:width => m[1].to_i, :height => m[2].to_i, :x => m[3].to_i, :y => m[4].to_i} } opt.on('--debug', 'enable debug mode') {|v| Kindai::Util.debug_mode! } opt.parse!(arguments) } if arguments.empty? stdout.puts parser.help exit 1 end arguments.each{|file| Kindai::Util.logger.info "publish #{file}" publisher = Kindai::Publisher.new_from_path file publisher.empty('trim') publisher.empty('*zip') if config[:trimming] publisher.trim(config[:trimming]) end publisher.publish_auto } end