Sha256: bd7805fc1fe78116874267403791b2bd86c5e46b3b25d53d9eb76960396d2c9e
Contents?: true
Size: 1.68 KB
Versions: 2
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module MovieOrganizer class Movie < Medium attr_reader :tmdb_instance class << self # Determine if the passed file is most likely a Movie. # If it is, that usually means the file was named with movie title and year somwehere in # the filename # # @return [Boolean] TmdbInstance if likely a Movie, false if not def match?(filepath) base = basename(filepath) possible_year = possible_year_in_title(base) clean_title = sanitize(base).gsub(/[\s\.\-\_]\(?\s*\d+\s*\)?/, '') tmdb_instance = TmdbInstance.new(clean_title, possible_year) return tmdb_instance if tmdb_instance.movie? false end private def possible_year_in_title(title) title_with_year = sanitize(title) md = title_with_year.match(/(\d+)/) md ? md[1] : nil end end def initialize(filename, tmdb_instance) super(filename) @tmdb_instance = tmdb_instance end # Set the target filename # def process! return nil unless tmdb_instance tmdb_instance.likely_match @target = File.join(target_dir, processed_filename) Logger.instance.info(" target file: [#{@target.green.bold}]") end def processed_filename "#{title} (#{year})#{extname}" end def title return sanitize(basename).gsub(/[\s\.\-\_]\(?\s*\d+\s*\)?/, '') unless tmdb_instance tmdb_instance.title end def year return nil unless tmdb_instance tmdb_instance.year end private def target_dir @target_dir ||= File.join(MovieOrganizer.movie_directory, "#{title} (#{year})") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
movie_organizer-1.0.2 | lib/movie_organizer/movie.rb |
movie_organizer-1.0.1 | lib/movie_organizer/movie.rb |