class SleepRoom::CLI

Public Class Methods

new(argv) click to toggle source

@param argv [Array]

# File lib/sleeproom/cli.rb, line 10
def initialize(argv)
  SleepRoom.reload_config
  @options = {}
  build
  unless argv.empty?
    @parser.parse!(argv)
    action = argv.shift
    if action == "status"
      SleepRoom::Record::Tasks.status
    elsif action == "start"
      SleepRoom::Record::Tasks.start
    elsif action == "exit"
      SleepRoom::Record::Tasks.stop
    end
    exit(0)
  else
    puts @parser
    exit(0)
  end
end

Public Instance Methods

build() click to toggle source

@return [void]

# File lib/sleeproom/cli.rb, line 37
def build
  @parser = OptionParser.new do |opt|
    opt.version = "SleepRoom / #{SleepRoom::VERSION}"
    opt.banner = "#{opt.version}"
    opt.banner += "\nUsage: sleeproom [Options]\n\n"

    opt.banner += "Action:\n"
    opt.banner += "status".rjust(10)
    opt.banner += "显示任务状态".rjust(33)
    opt.banner += "\n"
    opt.banner += "exit".rjust(8)
    opt.banner += "关闭任务队列".rjust(35)
    opt.banner += "\n\nCommands:\n"

    opt.on("-a ROOM, NAME", "--add ROOM, GROUP", Array, "添加到监视列表") do |room|
      SleepRoom::Record::Tasks.add(room[0].to_s, room[1].to_s)
    end

    opt.on("-r", "--remove [ROOM]", "从监视列表移除") do |room|
      SleepRoom::Record::Tasks.remove(room)
    end

    opt.on("-d", "--download [ROOM]", "录制指定房间") do |room|
      raise Error.new("房间名不能为空") if room.nil?
      if room.match?("https://www.showroom-live.com/")
        room = room.match(/https:\/\/www.showroom-live.com\/(.*)/)[1]
      end
      write_status = SleepRoom::Record::WriteStatus.new
      record = SleepRoom::Record::Showroom.new(room: room, group: "download", queue: write_status)
      record.record
    end

    opt.on("-v", "--verbose", "Print log") do
      @options[:verbose] = true
    end
    
    opt.on_tail("--version", "Print version") do
      STDOUT.puts(opt.version)
    end

    opt.on_tail("-h", "--help", "Print help") do
      STDOUT.puts(opt)
    end
  end
end
run() click to toggle source

@return [void]

# File lib/sleeproom/cli.rb, line 32
def run
  SleepRoom::Record::Tasks.start
end