Class: P3::TV::Search
- Inherits:
-
Object
- Object
- P3::TV::Search
- 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
- #each_episode ⇒ Object
- #eztv(series_name) ⇒ Object
- #find_episodes_by_seriesid(seriesid) ⇒ Object
- #find_series(title) ⇒ Object
- #find_series_by_id(seriesid) ⇒ Object
- #get_magnet_link_if_exists(episode_file) ⇒ Object
-
#initialize(settings = Settings.new) ⇒ Search
constructor
A new instance of Search.
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_episode ⇒ Object
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 |
#get_magnet_link_if_exists(episode_file) ⇒ Object
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 |