lib/command/send.rb in narou-3.1.11 vs lib/command/send.rb in narou-3.2.0

- old
+ new

@@ -111,24 +111,25 @@ if @options["without-freeze"] && Narou.novel_frozen?(target) && (!Narou.web? || (Narou.web? && send_all)) next end if target == "hotentry" - ebook_path = Update.get_newest_hotentry_file_path(device) + ebook_paths = [Update.get_newest_hotentry_file_path(device)] else - ebook_path = Narou.get_ebook_file_path(target, device.ebook_file_ext) + ebook_paths = Narou.get_ebook_file_paths(target, device.ebook_file_ext) end - unless ebook_path + unless ebook_paths[0] error "#{target} は存在しません" next end - unless File.exist?(ebook_path) - error "まだファイル(#{File.basename(ebook_path)})が無いようです" unless send_all + unless File.exist?(ebook_paths[0]) + error "まだファイル(#{File.basename(ebook_paths[0])})が無いようです" unless send_all next end - if !@options["force"] && !device.ebook_file_old?(ebook_path) + # TODO: should check all items in ebook_paths + if !@options["force"] && !device.ebook_file_old?(ebook_paths[0]) next end display_target = if target == "hotentry" target @@ -136,26 +137,28 @@ "ID:#{target} #{TermColorLight.escape(titles[target])}" end puts "<bold><green>#{display_target}</green></bold>".termcolor print "#{device.name}へ送信しています" - exit_copy = false - copy_to_path = nil - Thread.abort_on_exception = true - Thread.new do - copy_to_path = device.copy_to_documents(ebook_path) - exit_copy = true - end - until exit_copy - print "." - sleep(0.5) - end - puts - if copy_to_path - puts copy_to_path + " へコピーしました" - else - error "#{device.name}が見つからなかったためコピー出来ませんでした" - exit Narou::EXIT_ERROR_CODE # next しても次も失敗すると分かりきっているためここで終了する + ebook_paths.each do |ebook_path| + exit_copy = false + copy_to_path = nil + Thread.abort_on_exception = true + Thread.new do + copy_to_path = device.copy_to_documents(ebook_path) + exit_copy = true + end + until exit_copy + print "." + sleep(0.5) + end + puts + if copy_to_path + puts copy_to_path + " へコピーしました" + else + error "#{device.name}が見つからなかったためコピー出来ませんでした" + exit Narou::EXIT_ERROR_CODE # next しても次も失敗すると分かりきっているためここで終了する + end end end if send_all && @options["backup-bookmark"] process_backup_bookmark(device) end