Class: P3::TV::Library
- Inherits:
-
Object
- Object
- P3::TV::Library
- Defined in:
- lib/p3-tv.rb
Instance Method Summary collapse
- #catalog!(episode) ⇒ Object
- #episode_glob(episode) ⇒ Object
- #episode_path(episode) ⇒ Object
- #exists?(episode) ⇒ Boolean
- #format_episode(episode) ⇒ Object
- #format_season(episode) ⇒ Object
-
#initialize(settings = Settings.new) ⇒ Library
constructor
A new instance of Library.
Constructor Details
Instance Method Details
#catalog!(episode) ⇒ Object
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 |
# 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) ⇒ Object
308 309 310 311 312 313 314 315 |
# 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) ⇒ Object
317 318 319 320 321 322 323 324 325 326 |
# 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) ⇒ Boolean
292 293 294 295 296 297 |
# 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) ⇒ Object
303 304 305 |
# File 'lib/p3-tv.rb', line 303 def format_episode( episode ) return episode.episode.to_s.rjust( 2, '0' ) end |
#format_season(episode) ⇒ Object
299 300 301 |
# File 'lib/p3-tv.rb', line 299 def format_season( episode ) return episode.season.to_s.rjust( 2, '0' ) end |