class Dvdvrconv::Command
Public Class Methods
new(argv)
click to toggle source
# File lib/dvdvrconv/command.rb, line 7 def initialize(argv) @argv = argv @options = {} config_file = Dvdvrconv::DEFAULT_CONFIG_FILE if File.exist?(config_file) load_config(config_file) end end
run(argv)
click to toggle source
# File lib/dvdvrconv/command.rb, line 3 def self.run(argv) new(argv).execute end
Public Instance Methods
execute()
click to toggle source
For now, this test code returns dummy dvd-vr information.
# File lib/dvdvrconv/command.rb, line 18 def execute options = Dvdvrconv::Options.parse(@argv) dvd = Dvdvrconv::Dvdvr.new # Set the path specified in the yaml file. dvd.vrdisc.opts_ifo = @options[:vr_mangr_ifo] if @options[:vr_mangr_ifo] dvd.vrdisc.opts_vro = @options[:vr_movie_vro] if @options[:vr_movie_vro] dvd.vrdisc.cmd = @options[:dvd_vr_cmd] if @options[:dvd_vr_cmd] # dvd.vrdisc.opts_ifo = "test/DVD_RTAV/VR_MANGR.IFO" # dvd.vrdisc.opts_vro = "test/DVD_RTAV/VR_MOVIE.VRO" if options[:opt][:config_file] puts "Use config file\n => #{options[:opt][:config_file]}" opt_config_file = options[:opt][:config_file] load_config(opt_config_file) if File.exist?(opt_config_file) dvd.vrdisc.opts_ifo = @options[:vr_mangr_ifo] if @options[:vr_mangr_ifo] dvd.vrdisc.opts_vro = @options[:vr_movie_vro] if @options[:vr_movie_vro] dvd.vrdisc.cmd = @options[:dvd_vr_cmd] if @options[:dvd_vr_cmd] end # View the path of each files puts "== Use these paths ==" puts " => VR_MANGR.IFO: #{dvd.vrdisc.opts_ifo}" puts " => VR_MOVIE.VRO #{dvd.vrdisc.opts_vro}" puts " => dvd-vr.exe: #{dvd.vrdisc.cmd}" dvd.read_info if options[:opt][:info] dvd.view_info exit end # Extract vob files dvd.adjust_title dvd.vro2vob # Change the file name to the title name dvd.change_to_title_name dvd.rename_vob # Concatenate Split titles concat_list = dvd.make_concat_list dvd.concat_titles(concat_list) # customize title of vob files case @options[:use_customize_title] when 1 puts "Specify individual file names." if @options[:base_dst_name].class == Array base_dst_name = @options[:base_dst_name] else puts "ERROR: base_dst_name should be an Array. \n ( => #{@options[:base_dst_name]})" exit end number_list = [] when 2 puts "Add sequence number to the file name." if @options[:base_dst_name].class == String base_dst_name = @options[:base_dst_name] else puts "ERROR: base_dst_name should be String. \n ( => #{@options[:base_dst_name]})" exit end number_list = [] when 3 puts "Specify sequence numbers individually." if @options[:base_dst_name].class == String base_dst_name = @options[:base_dst_name] else puts "ERROR: base_dst_name should be String. \n ( => #{@options[:base_dst_name]})" exit end if @options[:number_list].class == Array number_list = @options[:number_list] else puts "ERROR: number_list should be an Array." exit end else puts "No customize file names" base_dst_name = dvd.vrdisc.title.uniq.map { |file| file[0].gsub(/\s/, "_") } number_list = [] end dvd.customize_title(base_dst_name, number_list) dvd.rename_vob # convert vob to mp4 dvd.vob2mp4 end
load_config(file)
click to toggle source
load yaml file and store in @options.
# File lib/dvdvrconv/command.rb, line 118 def load_config(file) config = YAML.load(File.read(file)) %w(vr_mangr_ifo vr_movie_vro dvd_vr_cmd).each do |key| unless config.key?(key) puts "[ #{key} ] does not exist in #{file} file." exit end if File.exist?(config[key]) @options[key.to_sym] = config[key] else puts "File read error. No such file: #{config[key]}" end end @options[:use_customize_title] = config["use_customize_title"] || "no" @options[:base_dst_name] = config["base_dst_name"] || [] @options[:number_list] = config["number_list"] || [] end