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