Sha256: eb70eb989cdafac9aa61d96168a64ce25aed9e98b92d5db53a43e168d7b069c4

Contents?: true

Size: 1.95 KB

Versions: 35

Compression:

Stored size: 1.95 KB

Contents

# -*- coding: utf-8 -*-
#
# Copyright 2013 whiteleaf. All rights reserved.
#

require_relative "../database"
require_relative "../downloader"
require_relative "../inventory"

module Command
  class Freeze < CommandBase
    def self.oneline_help
      "小説の凍結設定を行います"
    end

    def initialize
      super("<target> [<target2> ...] [options]")
      @opt.separator <<-EOS

  ・指定した小説を凍結し、変更不可属性を付与します。
  ・凍結することでダウンロード、アップデート及び削除が出来なくなります。
  ・凍結済みの小説を指定した場合、凍結が解除されます。

  Examples:
    narou freeze --list
    narou freeze n9669bk
    narou freeze 0 1 musyoku

  Options:
      EOS
      @opt.on("-l", "--list", "凍結中小説の一覧を表示") {
        output_freeze_list
        exit 0
      }
      @opt.on("--on", "現在の状態にかかわらず凍結する") {
        @options["on"] = true
      }
      @opt.on("--off", "現在の状態にかかわらず解除する") {
        @options["off"] = true
      }
    end

    def output_freeze_list
      List.execute!(%w(--filter frozen))
    end

    def execute(argv)
      super
      if argv.empty?
        puts @opt.help
        return
      end
      tagname_to_ids(argv)
      frozen_list = Inventory.load("freeze")
      argv.each do |target|
        data = Downloader.get_data_by_target(target)
        unless data
          puts "#{target} は存在しません"
          next
        end
        id, title = data["id"], data["title"]
        flag = !frozen_list.include?(id)
        flag = true if @options["on"]
        flag = false if @options["off"]
        if flag
          frozen_list[id] = true
          puts "#{title} を凍結しました"
        else
          frozen_list.delete(id)
          puts "#{title} の凍結を解除しました"
          next
        end
      end
      frozen_list.save
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
narou-3.2.0.1 lib/command/freeze.rb
narou-3.2.0 lib/command/freeze.rb
narou-3.1.11 lib/command/freeze.rb
narou-3.1.10 lib/command/freeze.rb
narou-3.1.9 lib/command/freeze.rb
narou-3.1.8 lib/command/freeze.rb
narou-3.1.7 lib/command/freeze.rb
narou-3.1.6 lib/command/freeze.rb
narou-3.1.5 lib/command/freeze.rb
narou-3.1.4 lib/command/freeze.rb
narou-3.1.3 lib/command/freeze.rb
narou-3.1.2 lib/command/freeze.rb
narou-3.1.1 lib/command/freeze.rb
narou-3.0.5.1 lib/command/freeze.rb
narou-3.0.5 lib/command/freeze.rb
narou-3.0.4 lib/command/freeze.rb
narou-3.0.3 lib/command/freeze.rb
narou-3.0.2 lib/command/freeze.rb
narou-3.0.1 lib/command/freeze.rb
narou-3.0.0 lib/command/freeze.rb