lib/command/remove.rb in narou-1.4.3 vs lib/command/remove.rb in narou-1.4.4
- old
+ new
@@ -14,30 +14,48 @@
・削除したい小説のNコード、URL、タイトルもしくはIDを指定して下さい。
IDは #{@opt.program_name} list を参照して下さい。
・一度に複数の小説を指定する場合は空白で区切って下さい。
・削除確認をスキップするには -y オプションを有効にして下さい。
- ・削除するのはデータベースのインデックスだけで、変換済みテキストファイルやMOBIファイル等はそのまま残ります。
+ ・削除するのはデータベースのインデックスだけで、変換済みテキストファイルやMOBIファイル等はそのまま残ります。ファイルをすべて削除する場合は --with-file オプションを指定して下さい。
Example:
narou remove n9669bk
narou remove http://ncode.syosetu.com/n9669bk/
narou remove n9669bk http://ncode.syosetu.com/n4259s/
narou remove 0 1 -y
narou remove n9669bk --with-file # ファイルも完全に削除する
+ narou remove --all-ss # 連載小説をすべて削除する
+ narou remove --all-ss --with-file # 短編小説をファイルも含めてすべて削除する
Options:
EOS
@opt.on("-y", "--yes", "削除確認メッセージを表示しない") {
@options["yes"] = true
}
@opt.on("--with-file", "小説の保存フォルダ・ファイルも全て削除する") {
@options["with-file"] = true
}
+ @opt.on("--all-ss", "短編小説をすべて削除する") {
+ @options["all-ss"] = true
+ }
end
+ def get_all_short_story
+ Database.instance.get_object.values.select { |v| v["novel_type"] == 2 }
+ end
+
def execute(argv)
super
+ novels = []
+ if @options["all-ss"]
+ novels = get_all_short_story
+ if novels.count == 0
+ puts "短編小説がひとつもありません"
+ return
+ end
+ argv += novels.map { |n| n["id"].to_s }
+ end
if argv.empty?
puts @opt.help
return
end
argv.each_with_index do |target, i|