Class: P3::TV::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/p3-tv.rb

Constant Summary collapse

TVDB_API_KEY =

please don’t steal my key. it is very easy to get one for your app here: thetvdb.com/index.php?tab=apiregister they won’t spam you and its free

'70BE8DAF03F45D4A'

Instance Method Summary collapse

Constructor Details

#initialize(settings = Settings.new) ⇒ Search

Returns a new instance of Search.



550
551
552
553
554
555
# File 'lib/p3-tv.rb', line 550

def initialize( settings = Settings.new )
    @settings = settings

    @tvdb = P3::Tvdb::Search.new( TVDB_API_KEY )
    @eztv = {}
end

Instance Method Details

#each_episodeObject



580
581
582
583
584
585
586
# File 'lib/p3-tv.rb', line 580

def each_episode
    @settings[:series].each do | series_hash |
        find_episodes_by_seriesid( series_hash[:id] ) do | episode |
            yield( episode )
        end
    end
end

#eztv(series_name) ⇒ Object



588
589
590
591
592
593
594
595
# File 'lib/p3-tv.rb', line 588

def eztv( series_name )
    unless( @eztv.has_key?( series_name ) )
        ez = P3::Eztv::Series.new( P3::TV::format_title( series_name ) )
        ez.high_def! if @settings[:high_def]
        @eztv[ series_name ] = ez
    end
    return @eztv[ series_name ]
end

#find_episodes_by_seriesid(seriesid) ⇒ Object



571
572
573
574
575
576
577
578
# File 'lib/p3-tv.rb', line 571

def find_episodes_by_seriesid( seriesid )
    series = find_series_by_id( seriesid )
    if( series )
        series.episodes.each do | episode |
            yield( episode ) if episode.season_number > 0
        end
    end
end

#find_series(title) ⇒ Object



557
558
559
560
561
562
563
564
565
# File 'lib/p3-tv.rb', line 557

def find_series( title )
    results = @tvdb.search( title )
    results.select!{|r| r['FirstAired'] } #must have this field

    #assume the more-recent show first
    results.sort!{ | a,b |  b['FirstAired'] <=> a['FirstAired'] }
    results = results.collect{|r| find_series_by_id( r['seriesid'] ) }
    return results
end

#find_series_by_id(seriesid) ⇒ Object



567
568
569
# File 'lib/p3-tv.rb', line 567

def find_series_by_id( seriesid )
    return @tvdb.get_series_by_id( seriesid )
end


597
598
599
600
601
602
# File 'lib/p3-tv.rb', line 597

def get_magnet_link_if_exists( episode_file )
    ez = eztv( episode_file.series )
    eztv_episode = ez.episode( episode_file.season, episode_file.episode )
    return eztv_episode.magnet_link if eztv_episode
    return nil
end