class P3::TV::Library

Public Class Methods

new( settings = Settings.new ) click to toggle source
# File lib/p3-tv.rb, line 288
def initialize( settings = Settings.new )
    @settings = settings
end

Public Instance Methods

catalog!( episode ) click to toggle source
# File lib/p3-tv.rb, line 328
def catalog!( episode )
    cataloged_path  = episode_path( episode )
    cataloged_dir = File::dirname( cataloged_path )

    unless File::exists?( cataloged_dir )
        FileUtils::mkdir_p( cataloged_dir, { :noop => @settings[:dry_run], :verbose => @settings[:verbose] } )
    end

    if( !File::exists?( cataloged_path ) or @settings[:overwrite_duplicates] )
        FileUtils::move( episode.path, cataloged_path, { :noop => @settings[:dry_run], :verbose => @settings[:verbose], :force => true } )
    elsif( @settings[:delete_duplicate_downloads] )
        FileUtils::remove( episode.path, { :noop => @settings[:dry_run], :verbose => @settings[:verbose] } )
    else
        STDERR.puts "file exists. doing nothing: #{cataloged_path}" if @settings[:verbose]
    end
end
episode_glob( episode ) click to toggle source
# File lib/p3-tv.rb, line 308
def episode_glob( episode )
    formatted_title = P3::TV::format_title( episode.series )
    return File::join( @settings[:library_path],
                       formatted_title,
                       "Season #{format_season( episode )}",
                       "#{formatted_title} S#{format_season( episode )}E#{format_episode( episode )}" + ( episode.type or '.*' )
                     )
end
episode_path( episode ) click to toggle source
# File lib/p3-tv.rb, line 317
def episode_path( episode )
    glob = episode_glob( episode )
    if( episode.type )
        return glob # this will NOT end in .*
    else
        Dir::glob( glob ).each do | path |
            return path
        end
    end
end
exists?( episode ) click to toggle source
# File lib/p3-tv.rb, line 292
def exists?( episode )
    Dir::glob( episode_glob( episode ) ).each do | path |
        return true if File::exists?( path )
    end
    return false
end
format_episode( episode ) click to toggle source
# File lib/p3-tv.rb, line 303
def format_episode( episode )
    return episode.episode.to_s.rjust( 2, '0' )
end
format_season( episode ) click to toggle source
# File lib/p3-tv.rb, line 299
def format_season( episode )
    return episode.season.to_s.rjust( 2, '0' )
end