class TvdbPartyV2::Search

Attributes

language[RW]
token[RW]

Public Class Methods

new(apikey, username, userkey, language = 'en', cache_options = {}) click to toggle source
# File lib/tvdb_party_v2/search.rb, line 9
def initialize(apikey, username, userkey, language = 'en', cache_options = {})
  @language = language
  thetvdb = self.class.post('/login',
                            :body => {"apikey" => apikey,
                                      "username" => username,
                                      "userkey" => userkey}.to_json)
  @token = thetvdb['token']
end

Public Instance Methods

get(url) click to toggle source
# File lib/tvdb_party_v2/search.rb, line 127
def get(url)
  return self.class.get(url,
                 :headers => {"Authorization" => 'Bearer ' + @token,"Accept-Language" => self.language}).parsed_response
end
get_actors(series) click to toggle source
# File lib/tvdb_party_v2/search.rb, line 90
def get_actors(series)
  response = self.get("/series/#{series.id}/actors")
  if response["data"]
    response["data"].collect {|a| Actor.new(a)}
  else
    nil
  end
end
get_banners(series, keyType, subKey = nil) click to toggle source
# File lib/tvdb_party_v2/search.rb, line 109
def get_banners(series, keyType, subKey = nil)
  if subKey
    url = "/series/#{series.id}/images/query?keyType=#{keyType}&subKey=#{subKey}"
  else
    url = "/series/#{series.id}/images/query?keyType=#{keyType}"
  end
  response = self.get(url)
  return [] unless response["data"]
  case response["data"]
  when Array
    response["data"].map {|result| Banner.new(result)}
  when Hash
    [Banner.new(response["data"])]
  else
    []
  end
end
get_episode(series, season_number, episode_number = nil, page_id = nil) click to toggle source

基于季数、集数获取集的详细信息

# File lib/tvdb_party_v2/search.rb, line 68
def get_episode(series, season_number, episode_number = nil,  page_id = nil)
  if episode_number
    url = "/series/#{series.id}/episodes/query?airedSeason=#{season_number}&airedEpisode=#{episode_number}"
  else
    url = "/series/#{series.id}/episodes/query?airedSeason=#{season_number}"
  end
  url = url + "&page=#{page_id}" unless page_id.nil?

  response = self.get(url)
  return [] unless response["data"]
  data = []
  if response['links']['next'].nil?
    data = response["data"]
  else
    response["data"].each {|x| data << x}
    get_episode(series, season_number, episode_number, response['links']['next'])
  end
  data.map {|e| self.get_episode_by_id(e["id"])}
end
get_episode_by_id(episode_id, language = self.language) click to toggle source

基于电视剧集id获取每集的详细信息

# File lib/tvdb_party_v2/search.rb, line 58
def get_episode_by_id(episode_id, language = self.language)
  response = self.get("/episodes/#{episode_id.to_s}")
  if response["data"]
    Episode.new(self, response["data"])
  else
    nil
  end
end
get_seasons(series) click to toggle source

获取季数

# File lib/tvdb_party_v2/search.rb, line 100
def get_seasons(series)
  response = self.get("/series/#{series.id}/episodes/summary")
  if response["data"] && response["data"]["airedSeasons"]
    return response["data"]["airedSeasons"]
  else
    return []
  end
end
get_series_by_id(series_id, language = self.language) click to toggle source

基于电视剧id获取电视剧详细信息

# File lib/tvdb_party_v2/search.rb, line 48
def get_series_by_id(series_id, language = self.language)
  response = self.get("/series/#{series_id.to_s}")
  if response["data"]
    Series.new(self, response["data"])
  else
    nil
  end
end
search_by_imdb(imdb_id) click to toggle source

基于imdbid获取thetvdb的查询结果

# File lib/tvdb_party_v2/search.rb, line 33
def search_by_imdb(imdb_id)
  response = self.get("/search/series?imdbId=#{imdb_id}")
  return [] unless response["data"]

  case response["data"]
  when Array
    response["data"]
  when Hash
    [response["data"]]
  else
    []
  end
end