Class: TvdbPartyV2::Search
- Inherits:
-
Object
- Object
- TvdbPartyV2::Search
- Includes:
- HTTParty
- Defined in:
- lib/tvdb_party_v2/search.rb
Instance Attribute Summary collapse
-
#language ⇒ Object
Returns the value of attribute language.
-
#token ⇒ Object
Returns the value of attribute token.
Instance Method Summary collapse
- #get(url) ⇒ Object
- #get_actors(series) ⇒ Object
- #get_banners(series, keyType, subKey = nil) ⇒ Object
-
#get_episode(series, season_number, episode_number = nil, page_id = nil) ⇒ Object
基于季数、集数获取集的详细信息.
-
#get_episode_by_id(episode_id, language = self.language) ⇒ Object
基于电视剧集id获取每集的详细信息.
-
#get_seasons(series) ⇒ Object
获取季数.
-
#get_series_by_id(series_id, language = self.language) ⇒ Object
基于电视剧id获取电视剧详细信息.
-
#initialize(apikey, username, userkey, language = 'en', cache_options = {}) ⇒ Search
constructor
A new instance of Search.
-
#search(series_name) ⇒ Object
基于电视剧英文名称获取thetvdb的查询结果.
-
#search_by_imdb(imdb_id) ⇒ Object
基于imdbid获取thetvdb的查询结果.
Constructor Details
#initialize(apikey, username, userkey, language = 'en', cache_options = {}) ⇒ Search
Returns a new instance of Search.
9 10 11 12 13 14 15 16 |
# File 'lib/tvdb_party_v2/search.rb', line 9 def initialize(apikey, username, userkey, language = 'en', = {}) @language = language thetvdb = self.class.post('/login', :body => {"apikey" => apikey, "username" => username, "userkey" => userkey}.to_json) @token = thetvdb['token'] end |
Instance Attribute Details
#language ⇒ Object
Returns the value of attribute language.
7 8 9 |
# File 'lib/tvdb_party_v2/search.rb', line 7 def language @language end |
#token ⇒ Object
Returns the value of attribute token.
7 8 9 |
# File 'lib/tvdb_party_v2/search.rb', line 7 def token @token end |
Instance Method Details
#get(url) ⇒ Object
126 127 128 129 |
# File 'lib/tvdb_party_v2/search.rb', line 126 def get(url) return self.class.get(url, :headers => {"Authorization" => 'Bearer ' + @token,"Accept-Language" => self.language}).parsed_response end |
#get_actors(series) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/tvdb_party_v2/search.rb', line 89 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) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/tvdb_party_v2/search.rb', line 108 def (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) ⇒ Object
基于季数、集数获取集的详细信息
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# 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"] if response['links']['next'].nil? data = response["data"] else data << response["data"] get_episode(series, season_number, episode_number, self.language, response['links']['next']) end data.map {|e| self.get_episode_by_id(e["id"])} end |
#get_episode_by_id(episode_id, language = self.language) ⇒ Object
基于电视剧集id获取每集的详细信息
58 59 60 61 62 63 64 65 |
# 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) ⇒ Object
获取季数
99 100 101 102 103 104 105 106 |
# File 'lib/tvdb_party_v2/search.rb', line 99 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) ⇒ Object
基于电视剧id获取电视剧详细信息
48 49 50 51 52 53 54 55 |
# 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) ⇒ Object
基于电视剧英文名称获取thetvdb的查询结果
19 20 21 22 23 24 25 26 27 28 29 30 |
# 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) ⇒ Object
基于imdbid获取thetvdb的查询结果
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# 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 |