Class: Moviemeter::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/moviemeter/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

Parameters:

  • value

    the value to set the attribute api_key to.



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

Parameters:

  • value

    the value to set the attribute session_key to.



3
4
5
# File 'lib/moviemeter/client.rb', line 3

def session_key=(value)
  @session_key = value
end

Instance Method Details

#cinema_moviesObject



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_sessionObject



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

#videosObject



75
76
77
# File 'lib/moviemeter/client.rb', line 75

def videos
	raise "Not yet implemented"
end