# frozen_string_literal: true module VixenRename # Top Level Client class Client include VixenRename::Util def initialize(location, **opts) @location = location @net = Net.new @verbose = opts[:commit] != true end def convert convert_file if File.file? @location convert_files_in_dir if File.directory? @location end private def convert_file Dir.chdir(File.dirname(@location)) do old_file_name = File.basename(@location) new_filename, release_date = FileParser::Scene.new(@net).process(old_file_name) return if new_filename.nil? || release_date.nil? rename(old_file_name, new_filename, release_date, verbose: @verbose) new_filename end end def convert_files_in_dir scanner.each do |file| new_filename, release_date = FileParser::Scene.new(@net).process(file) next if new_filename.nil? || release_date.nil? rename(file, new_filename, release_date, verbose: @verbose) rescue VixenAPIError => e print "Error: #{e}\n" end end # @return [FileScanner::Client] def scanner @scanner ||= FileScanner.new(@location, { nested: @verbose, extension: "*.mp4" }) end end end