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_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(series_name)
click to toggle source
基于电视剧英文名称获取thetvdb的查询结果
# File lib/tvdb_party_v2/search.rb, line 19 def search(series_name) response = self.get("/search/series?name=#{URI::encode(series_name)}") return [] unless response["data"] case response["data"] when Array response["data"] when Hash [response["data"]] else [] 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