lib/command/update.rb in narou-2.3.3 vs lib/command/update.rb in narou-2.4.0

- old
+ new

@@ -47,10 +47,14 @@ n -= 1 if n > 0 @options["log"] = n view_log exit 0 } + @opt.on("--gl", "データベースに最新話掲載日を反映させる") { + update_general_lastup + exit 0 + } end def execute(argv) super mistook_count = 0 @@ -148,8 +152,33 @@ def remove_old_log list = get_log_paths (list[LOG_NUM_LIMIT..-1] || []).each do |path| File.delete(path) end + end + + def update_general_lastup + database = Database.instance + progressbar = ProgressBar.new(database.get_object.size - 1) + puts "最新話掲載日を更新しています..." + database.each.with_index do |(id, data), i| + progressbar.output(i) + setting = Downloader.get_sitesetting_by_target(id) + begin + info = NovelInfo.load(setting) + rescue OpenURI::HTTPError, Errno::ECONNRESET => e + next + end + next unless info + next unless info["title"] + data = { + "general_firstup" => info["general_firstup"], + "novelupdated_at" => info["novelupdated_at"], + "general_lastup" => info["general_lastup"] + } + database[id].merge!(data) + end + database.save_database + puts "\n更新が完了しました" end end end