Sha256: e3b35b1aca99f61a4566b2fabcb4f9de17c7dc24c8f51ca8fbba0807e97b776c

Contents?: true

Size: 1.24 KB

Versions: 1

Compression:

Stored size: 1.24 KB

Contents

# 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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vixen_rename-0.1.0 lib/vixen_rename/client.rb