Class: Moviemeter::Client
- Inherits:
-
Object
- Object
- Moviemeter::Client
- Defined in:
- lib/moviemeter/client.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
writeonly
Sets the attribute api_key.
-
#session_key ⇒ Object
writeonly
Sets the attribute session_key.
Instance Method Summary collapse
- #cinema_movies ⇒ Object
- #close_session ⇒ Object
- #director_by_id(director_id) ⇒ Object
- #director_search(name) ⇒ Object
- #images_by_movie_id(movie_id) ⇒ Object
- #imdb_info_by_movie_id(movie_id) ⇒ Object
-
#initialize(api_key) ⇒ Client
constructor
A new instance of Client.
- #movie_by_id(movie_id) ⇒ Object
- #movie_by_imdb_id(imdb_id) ⇒ Object
- #movies_by_director_id(director_id) ⇒ Object
- #review_by_id(movie_id, review_id) ⇒ Object
- #reviews_by_movie_id(movie_id) ⇒ Object
- #score_info_by_movie_id(movie_id) ⇒ Object
- #search(title) ⇒ Object
- #tv_guide(extended = false) ⇒ Object
- #videos ⇒ Object
Constructor Details
#initialize(api_key) ⇒ Client
Returns a new instance of Client.
5 6 7 |
# File 'lib/moviemeter/client.rb', line 5 def initialize(api_key) @api_key = api_key end |
Instance Attribute Details
#api_key=(value) ⇒ Object (writeonly)
Sets the attribute api_key
3 4 5 |
# File 'lib/moviemeter/client.rb', line 3 def api_key=(value) @api_key = value end |
#session_key=(value) ⇒ Object
Sets the attribute session_key
3 4 5 |
# File 'lib/moviemeter/client.rb', line 3 def session_key=(value) @session_key = value end |
Instance Method Details
#cinema_movies ⇒ Object
70 71 72 73 |
# File 'lib/moviemeter/client.rb', line 70 def cinema_movies data = rpc_client.call("film.retrieveCinema", session_key) data.map { |e| e[1].map! { |m| Release.new(e[0], m, self) } }.flatten! end |
#close_session ⇒ Object
95 96 97 98 |
# File 'lib/moviemeter/client.rb', line 95 def close_session rpc_client.call("api.closeSession", session_key) @session_key = nil end |
#director_by_id(director_id) ⇒ Object
84 85 86 87 88 |
# File 'lib/moviemeter/client.rb', line 84 def director_by_id(director_id) data = rpc_client.call("director.retrieveDetails", session_key, director_id) data['directorId'] = director_id Director.new(data, self) end |
#director_search(name) ⇒ Object
79 80 81 82 |
# File 'lib/moviemeter/client.rb', line 79 def director_search(name) directors = rpc_client.call("director.search", session_key, name) directors.map { |d| Director.new(d, self) } end |
#images_by_movie_id(movie_id) ⇒ Object
59 60 61 62 |
# File 'lib/moviemeter/client.rb', line 59 def images_by_movie_id(movie_id) data = rpc_client.call("film.retrieveImage", session_key, movie_id) data.map { |i| Image.new(i) } end |
#imdb_info_by_movie_id(movie_id) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/moviemeter/client.rb', line 40 def imdb_info_by_movie_id(movie_id) begin rpc_client.call("film.retrieveImdb", session_key, movie_id) rescue Exception => e nil end end |
#movie_by_id(movie_id) ⇒ Object
30 31 32 33 |
# File 'lib/moviemeter/client.rb', line 30 def movie_by_id(movie_id) data = rpc_client.call("film.retrieveDetails", session_key, movie_id) Movie.new(data, self) end |
#movie_by_imdb_id(imdb_id) ⇒ Object
35 36 37 38 |
# File 'lib/moviemeter/client.rb', line 35 def movie_by_imdb_id(imdb_id) movie_id = rpc_client.call("film.retrieveByImdb", session_key, imdb_id) movie_by_id(movie_id.to_i) end |
#movies_by_director_id(director_id) ⇒ Object
90 91 92 93 |
# File 'lib/moviemeter/client.rb', line 90 def movies_by_director_id(director_id) data = rpc_client.call("director.retrieveFilms", session_key, director_id) data.map { |m| Movie.new(m, self) } end |
#review_by_id(movie_id, review_id) ⇒ Object
55 56 57 |
# File 'lib/moviemeter/client.rb', line 55 def review_by_id(movie_id, review_id) rpc_client.call("film.retrieveReview", session_key, movie_id, review_id) end |
#reviews_by_movie_id(movie_id) ⇒ Object
52 53 54 |
# File 'lib/moviemeter/client.rb', line 52 def reviews_by_movie_id(movie_id) data = rpc_client.call("film.retrieveReviews", session_key, movie_id) end |
#score_info_by_movie_id(movie_id) ⇒ Object
48 49 50 |
# File 'lib/moviemeter/client.rb', line 48 def score_info_by_movie_id(movie_id) rpc_client.call("film.retrieveScore", session_key, movie_id) end |
#search(title) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/moviemeter/client.rb', line 9 def search(title) results = rpc_client.call('film.search', session_key, title); results.map! do |r| { 'id' => r['filmId'], 'title' => r['title'], 'alternative_title' => r['alternative_title'], 'year' => r['year'].to_i, 'url' => r['url'], 'thumbnail' => r['thumbnail'], 'rating' => r['average'].to_f, 'votes' => r['votes_count'].to_i, 'similarity' => r['similarity'], 'duration' => r['duration'].to_i, 'directors_text' => r['directors_text'], 'actors_text' => r['actors_text'], 'genres_text' => r['genres_text'] } end end |
#tv_guide(extended = false) ⇒ Object
64 65 66 67 68 |
# File 'lib/moviemeter/client.rb', line 64 def tv_guide(extended=false) method = extended ? "film.retrieveTvAll" : "film.retrieveTv" data = rpc_client.call(method, session_key) data.map { |e| e[1].map! { |m| Screening.new(e[0].to_i, m, self) } }.flatten! end |
#videos ⇒ Object
75 76 77 |
# File 'lib/moviemeter/client.rb', line 75 def videos raise "Not yet implemented" end |