class P3::TV::Search
Constants
- 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
Public Class Methods
new( settings = Settings.new )
click to toggle source
# File lib/p3-tv.rb, line 550 def initialize( settings = Settings.new ) @settings = settings @tvdb = P3::Tvdb::Search.new( TVDB_API_KEY ) @eztv = {} end
Public Instance Methods
each_episode() { |episode| ... }
click to toggle source
# 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 )
click to toggle source
# 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 ) { |episode| ... }
click to toggle source
# 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 )
click to toggle source
# 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 )
click to toggle source
# File lib/p3-tv.rb, line 567 def find_series_by_id( seriesid ) return @tvdb.get_series_by_id( seriesid ) end
get_magnet_link_if_exists( episode_file )
click to toggle source
# 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