class TTVDB::Client

Attributes

language[RW]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/ttvdb/client.rb, line 8
def initialize(opts = {})
  @opts = {
    :api_url => 'http://www.thetvdb.com/api/',
    :api_key => '530293E55310DAB2',
    :language => 'en',
  }.merge!opts
  @language = @opts[:language]
  @apikey = @opts[:api_key]
end

Public Instance Methods

get_episodes_by_series_id(id) click to toggle source
# File lib/ttvdb/client.rb, line 40
def get_episodes_by_series_id id
  lookup = "series/#{id}/all/#{@language}.xml"
  hsh = XmlSimple.xml_in(client[lookup].get)
  return [] unless hsh["Episode"]
  episodes = []
  hsh["Episode"].each do |e|
    episode = TTVDB::Episode.new(e)
    episode.client = self
    episodes << episode
  end
  episodes
end
get_series(name) click to toggle source
# File lib/ttvdb/client.rb, line 26
def get_series name
  _client = RestClient::Resource.new("#{@opts[:api_url]}/GetSeries.php", :headers  => { :params => { 'seriesname' => name, 'language' => @language }})
  hsh = XmlSimple.xml_in(_client.get)
  return [] unless hsh["Series"]
  series = []
  hsh["Series"].each do |s|
    serie = TTVDB::Series.new(s)
    next if serie.language != @language
    serie.client = self
    series << serie
  end
  return series
end
get_series_by_id(id) click to toggle source
# File lib/ttvdb/client.rb, line 18
def get_series_by_id id
  lookup = "series/#{id}/#{@language}.xml"
  hsh = XmlSimple.xml_in(client[lookup].get)
  serie = TTVDB::Series.new(hsh["Series"][0])
  serie.client = self
  return serie
end

Private Instance Methods

client() click to toggle source
# File lib/ttvdb/client.rb, line 54
def client
  @client ||= RestClient::Resource.new("#{@opts[:api_url]}/#{@apikey}/")
end