cine-passion 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -39,3 +39,8 @@
39
39
  === 0.9.0 / 2010-09-06
40
40
 
41
41
  * Can search with MovieID MovieSearch("1234", "ID")
42
+
43
+ === 0.10.0 / 2010-09-06
44
+
45
+ * version() return library version
46
+ * Better MovieGetInfo() (Work now)
data/lib/cine_passion.rb CHANGED
@@ -20,7 +20,11 @@ include REXML
20
20
  class CinePassion
21
21
  attr_reader :xml_data, :movies_info, :result_nb, :status, :quota, :apikey, :siteurl, :proxyinfo, :lang
22
22
 
23
- VERSION = '0.9.0'
23
+ VERSION = '0.10.0'
24
+
25
+ def version()
26
+ return VERSION
27
+ end
24
28
 
25
29
  # This class does not require parameters
26
30
  # First action is reset object
@@ -95,18 +99,18 @@ class CinePassion
95
99
  end
96
100
 
97
101
  # Generate URL For Movie.GetInfo
98
- def GenerateURLMovieGetInfo(search, query="Title", format="XML")
102
+ def GenerateURLMovieGetInfo(search, query="ID", format="XML")
99
103
  "#{@siteurl}/scraper/API/1/Movie.GetInfo/#{query}/#{@lang}/#{format}/#{@apikey}/#{search}"
100
104
  end
101
105
 
102
106
  # Execute a MovieSearch on scraper
103
- def MovieSearch(search)
107
+ def MovieSearch(search, query="Title", format="XML")
104
108
  DataLoadFromSite(GenerateURLMovieSearch(search, query="Title", format="XML"))
105
109
  @xml_data
106
110
  end
107
111
 
108
112
  # Execute a MovieGetInfo on scraper
109
- def MovieGetInfo(search)
113
+ def MovieGetInfo(search, query="ID", format="XML")
110
114
  DataLoadFromSite(GenerateURLMovieSearch(search, query="Title", format="XML"))
111
115
  @xml_data
112
116
  end
@@ -136,7 +140,12 @@ class CinePassion
136
140
  @movies_info = []
137
141
 
138
142
  doc = Document.new(@xml_data)
139
- root = doc.root
143
+ begin
144
+ doc.root.elements["movie"].has_elements?
145
+ root = doc.root
146
+ rescue
147
+ root = doc
148
+ end
140
149
 
141
150
  @movies_info = []
142
151
  root.each_element('movie') do |movie|
@@ -195,6 +204,71 @@ class CinePassion
195
204
  movie_info['year'] = oneMovieXML.elements['year'].text
196
205
  movie_info['runtime'] = oneMovieXML.elements['runtime'].text
197
206
  movie_info['plot'] = oneMovieXML.elements['plot'].text
207
+ movie_info['tagline'] = oneMovieXML.elements['tagline'].text if not oneMovieXML.elements['tagline'].nil?
208
+ movie_info['information'] = oneMovieXML.elements['information'].text if not oneMovieXML.elements['information'].nil?
209
+
210
+ movie_info['ratings'] = {}
211
+ movie_info['ratings']['cinepassion'] = {}
212
+ movie_info['ratings']['allocine'] = {}
213
+ movie_info['ratings']['imdb'] = {}
214
+ ratings = oneMovieXML.elements["ratings"]
215
+ ratings_cinepassion = ratings.elements["rating[@type='cinepassion']"]
216
+ movie_info['ratings']['cinepassion']['votes'] = ratings_cinepassion.attributes['votes']
217
+ movie_info['ratings']['cinepassion']['value'] = ratings_cinepassion.text
218
+ ratings_allocine = ratings.elements["rating[@type='allocine']"]
219
+ movie_info['ratings']['allocine']['votes'] = ratings_allocine.attributes['votes']
220
+ movie_info['ratings']['allocine']['value'] = ratings_allocine.text
221
+ ratings_imdb = ratings.elements["rating[@type='imdb']"]
222
+ movie_info['ratings']['imdb']['votes'] = ratings_imdb.attributes['votes']
223
+ movie_info['ratings']['imdb']['value'] = ratings_imdb.text
224
+
225
+ movie_info['directors'] = []
226
+ directors = oneMovieXML.elements["directors"]
227
+ if not directors.nil?
228
+ directors.each_element("director") do |director|
229
+ movie_info['directors'].push(director.text)
230
+ end
231
+ end
232
+
233
+ movie_info['trailers'] = []
234
+ trailers = oneMovieXML.elements["trailers"]
235
+ if not trailers.nil?
236
+ trailers.each_element("trailer") do |trailer|
237
+ movie_info['trailers'].push(trailer.text)
238
+ end
239
+ end
240
+
241
+ movie_info['countries'] = []
242
+ countries = oneMovieXML.elements["countries"]
243
+ if not countries.nil?
244
+ countries.each_element("country") do |country|
245
+ movie_info['countries'].push(country.text)
246
+ end
247
+ end
248
+
249
+ movie_info['genres'] = []
250
+ genres = oneMovieXML.elements["genres"]
251
+ if not genres.nil?
252
+ genres.each_element("genre") do |genre|
253
+ movie_info['genres'].push(genre.text)
254
+ end
255
+ end
256
+
257
+ movie_info['studios'] = []
258
+ studios = oneMovieXML.elements["studios"]
259
+ if not studios.nil?
260
+ studios.each_element("studio") do |studio|
261
+ movie_info['studios'].push(studio.text)
262
+ end
263
+ end
264
+
265
+ movie_info['credits'] = []
266
+ credits = oneMovieXML.elements["credits"]
267
+ if not credits.nil?
268
+ credits.each_element("credit") do |credit|
269
+ movie_info['credits'].push(credit.text)
270
+ end
271
+ end
198
272
 
199
273
  movie_info['images'] = {}
200
274
  images = oneMovieXML.elements["images"]
@@ -217,20 +291,22 @@ class CinePassion
217
291
  end
218
292
  end
219
293
 
220
- movie_info['ratings'] = {}
221
- movie_info['ratings']['cinepassion'] = {}
222
- movie_info['ratings']['allocine'] = {}
223
- movie_info['ratings']['imdb'] = {}
224
- ratings = oneMovieXML.elements["ratings"]
225
- ratings_cinepassion = ratings.elements["rating[@type='cinepassion']"]
226
- movie_info['ratings']['cinepassion']['votes'] = ratings_cinepassion.attributes['votes']
227
- movie_info['ratings']['cinepassion']['value'] = ratings_cinepassion.text
228
- ratings_allocine = ratings.elements["rating[@type='allocine']"]
229
- movie_info['ratings']['allocine']['votes'] = ratings_allocine.attributes['votes']
230
- movie_info['ratings']['allocine']['value'] = ratings_allocine.text
231
- ratings_imdb = ratings.elements["rating[@type='imdb']"]
232
- movie_info['ratings']['imdb']['votes'] = ratings_imdb.attributes['votes']
233
- movie_info['ratings']['imdb']['value'] = ratings_imdb.text
294
+ movie_info['casting'] = {}
295
+ casting = oneMovieXML.elements["casting"]
296
+ if not casting.nil?
297
+ casting.each_element("person") do |person|
298
+ person_id = person.attributes['id']
299
+
300
+ if not movie_info['casting'].has_key? person_id
301
+ movie_info['casting'][person_id] = {}
302
+ end
303
+
304
+ movie_info['casting'][person_id]['name'] = person.attributes['name']
305
+ movie_info['casting'][person_id]['character'] = person.attributes['character']
306
+ movie_info['casting'][person_id]['idthumb'] = person.attributes['idthumb']
307
+ movie_info['casting'][person_id]['thumb'] = person.attributes['thumb']
308
+ end
309
+ end
234
310
 
235
311
  nfo_base = "#{@siteurl}/scraper/index.php?id=#{movie_info['id']}&Download=1"
236
312
  movie_info['nfo'] = {}
@@ -11,6 +11,7 @@ class TestCinePassion < Test::Unit::TestCase
11
11
  @test = CinePassion.new
12
12
  assert_not_nil(@test)
13
13
  assert_instance_of(CinePassion, @test)
14
+ assert_not_nil(@test.version)
14
15
  end
15
16
 
16
17
  # Test ability to define a apikey
@@ -37,7 +38,7 @@ class TestCinePassion < Test::Unit::TestCase
37
38
  def test_generate_url
38
39
  @test1 = CinePassion.new()
39
40
  assert_equal(@test1.GenerateURLMovieSearch("toto"), "http://scraper-cine-passion-demo.ledez.net/scraper/API/1/Movie.Search/Title/en/XML/fake-7945cb-fake/toto")
40
- assert_equal(@test1.GenerateURLMovieGetInfo("toto"), "http://scraper-cine-passion-demo.ledez.net/scraper/API/1/Movie.GetInfo/Title/en/XML/fake-7945cb-fake/toto")
41
+ assert_equal(@test1.GenerateURLMovieGetInfo("toto"), "http://scraper-cine-passion-demo.ledez.net/scraper/API/1/Movie.GetInfo/ID/en/XML/fake-7945cb-fake/toto")
41
42
  end
42
43
 
43
44
  # Test ability to define a language for requests
@@ -213,6 +214,86 @@ class TestCinePassion < Test::Unit::TestCase
213
214
  assert_equal(@test.quota['authorize'], "300")
214
215
  assert_equal(@test.quota['use'], "2")
215
216
  assert_equal(@test.quota['reset_date'], "2010-08-04 12:45:26")
217
+
218
+ # Extract all data from getInfo(id)
219
+ @test.DataLoadFromFile("test/data/cinepassion-scraper-test-03-by-id.xml")
220
+ assert_not_equal(@test.xml_data, "")
221
+ assert_equal(@test.result_nb, 1)
222
+ assert_equal(@test.movies_info[0]['id'], "136356")
223
+ assert_equal(@test.movies_info[0]['id_allocine'], "136356")
224
+ assert_equal(@test.movies_info[0]['id_imdb'], "1234548")
225
+ assert_equal(@test.movies_info[0]['last_change'], "1279466676")
226
+ assert_equal(@test.movies_info[0]['url'], "http://passion-xbmc.org/scraper/index2.php?Page=ViewMovie&ID=136356")
227
+ assert_equal(@test.movies_info[0]['title'], "Les Chèvres du Pentagone")
228
+ assert_equal(@test.movies_info[0]['originaltitle'], "The Men Who Stare at Goats")
229
+ assert_equal(@test.movies_info[0]['year'], "2009")
230
+ assert_equal(@test.movies_info[0]['directors'][0], "Grant Heslov")
231
+ assert_equal(@test.movies_info[0]['plot'], "Bob Wilton, un journaliste désespéré fait l'heureuse rencontre de Lyn Cassady, un soldat aux pouvoirs paranormaux combattant le terrorisme. Ils se rendent ensemble en Irak ou ils rencontrent Bill Django, le fondateur de l'unité, et Larry Hooper, soldat de l'unité qui dirige une prison.")
232
+ assert_equal(@test.movies_info[0]['tagline'], "(...) un casting de rêve pour une comédie dont l'insolence revigorante et l'absurdité assumée rappellent le récent Burn after reading des frères Coen. Jubilatoire!")
233
+ assert_equal(@test.movies_info[0]['runtime'], "90")
234
+ assert_equal(@test.movies_info[0]['information'], "Couleur / Format de projection : 2.35 : 1 Cinemascope / Format de production : 35 mm")
235
+ assert_equal(@test.movies_info[0]['trailers'][0], "http://hd.fr.mediaplayer.allocine.fr/nmedia/18/73/11/43/18937641_fa2_vost_hd.flv")
236
+ assert_equal(@test.movies_info[0]['countries'][0], "américain")
237
+ assert_equal(@test.movies_info[0]['genres'][0], "Comédie")
238
+ assert_equal(@test.movies_info[0]['studios'][0], "Sony Pictures Releasing")
239
+ assert_equal(@test.movies_info[0]['credits'][0], "Peter Straughan")
240
+
241
+ assert_equal(@test.movies_info[0]['images']['311335']['type'], "Poster")
242
+ assert_equal(@test.movies_info[0]['images']['311335']['original']['height'], "2716")
243
+ assert_equal(@test.movies_info[0]['images']['311335']['original']['width'], "2000")
244
+ assert_equal(@test.movies_info[0]['images']['311335']['original']['url'], "http://passion-xbmc.org/scraper/Gallery/main/Poster_LesChvresduPentagone-311335.jpg")
245
+ assert_equal(@test.movies_info[0]['images']['311335']['preview']['url'], "http://passion-xbmc.org/scraper/Gallery/preview/Poster_LesChvresduPentagone-311335.jpg")
246
+ assert_equal(@test.movies_info[0]['images']['311335']['thumb']['url'], "http://passion-xbmc.org/scraper/Gallery/thumb/Poster_LesChvresduPentagone-311335.jpg")
247
+
248
+ assert_equal(@test.movies_info[0]['images']['316672']['type'], "Fanart")
249
+ assert_equal(@test.movies_info[0]['images']['316672']['original']['height'], "1080")
250
+ assert_equal(@test.movies_info[0]['images']['316672']['original']['width'], "1920")
251
+ assert_equal(@test.movies_info[0]['images']['316672']['original']['url'], "http://passion-xbmc.org/scraper/Gallery/main/Fanart_LesChvresduPentagone-316672.jpg")
252
+ assert_equal(@test.movies_info[0]['images']['316672']['preview']['url'], "http://passion-xbmc.org/scraper/Gallery/preview/Fanart_LesChvresduPentagone-316672.jpg")
253
+ assert_equal(@test.movies_info[0]['images']['316672']['thumb']['url'], "http://passion-xbmc.org/scraper/Gallery/thumb/Fanart_LesChvresduPentagone-316672.jpg")
254
+
255
+ assert_equal(@test.movies_info[0]['ratings']['cinepassion']['votes'], "1")
256
+ assert_equal(@test.movies_info[0]['ratings']['cinepassion']['value'], "7")
257
+ assert_equal(@test.movies_info[0]['ratings']['allocine']['votes'], "1603")
258
+ assert_equal(@test.movies_info[0]['ratings']['allocine']['value'], "2,5")
259
+ assert_equal(@test.movies_info[0]['ratings']['imdb']['votes'], "33172")
260
+ assert_equal(@test.movies_info[0]['ratings']['imdb']['value'], "6,4")
261
+
262
+ assert_equal(@test.movies_info[0]['casting']['10551']['name'], "Stephen Root")
263
+ assert_equal(@test.movies_info[0]['casting']['10551']['character'], "Gus Lacey")
264
+ assert_equal(@test.movies_info[0]['casting']['10551']['idthumb'], "0")
265
+ assert_equal(@test.movies_info[0]['casting']['10551']['thumb'], "http://passion-xbmc.org/scraper/Images/Actor_Unknow.png")
266
+ assert_equal(@test.movies_info[0]['casting']['103366']['name'], "Nick Offerman")
267
+ assert_equal(@test.movies_info[0]['casting']['103366']['character'], "Scotty Mercer")
268
+ assert_equal(@test.movies_info[0]['casting']['103366']['idthumb'], "0")
269
+ assert_equal(@test.movies_info[0]['casting']['103366']['thumb'], "http://passion-xbmc.org/scraper/Images/Actor_Unknow.png")
270
+ assert_equal(@test.movies_info[0]['casting']['32799']['name'], "J.K. Simmons")
271
+ assert_equal(@test.movies_info[0]['casting']['32799']['character'], "le général Putkin")
272
+ assert_equal(@test.movies_info[0]['casting']['32799']['idthumb'], "32423")
273
+ assert_equal(@test.movies_info[0]['casting']['32799']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/JKSimmons-32423.jpg")
274
+ assert_equal(@test.movies_info[0]['casting']['12399']['name'], "Kevin Spacey")
275
+ assert_equal(@test.movies_info[0]['casting']['12399']['character'], "Larry Hooper")
276
+ assert_equal(@test.movies_info[0]['casting']['12399']['idthumb'], "32271")
277
+ assert_equal(@test.movies_info[0]['casting']['12399']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/KevinSpacey-32271.jpg")
278
+ assert_equal(@test.movies_info[0]['casting']['111326']['name'], "Tim Griffin")
279
+ assert_equal(@test.movies_info[0]['casting']['111326']['character'], "Tim Kootz")
280
+ assert_equal(@test.movies_info[0]['casting']['111326']['idthumb'], "0")
281
+ assert_equal(@test.movies_info[0]['casting']['111326']['thumb'], "http://passion-xbmc.org/scraper/Images/Actor_Unknow.png")
282
+ assert_equal(@test.movies_info[0]['casting']['6298']['name'], "Robert Patrick")
283
+ assert_equal(@test.movies_info[0]['casting']['6298']['character'], "Todd Nixon")
284
+ assert_equal(@test.movies_info[0]['casting']['6298']['idthumb'], "31401")
285
+ assert_equal(@test.movies_info[0]['casting']['6298']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/RobertPatrick-31401.jpg")
286
+ assert_equal(@test.movies_info[0]['casting']['17043']['name'], "Ewan McGregor")
287
+ assert_equal(@test.movies_info[0]['casting']['17043']['character'], "Bob Wilton")
288
+ assert_equal(@test.movies_info[0]['casting']['17043']['idthumb'], "31599")
289
+ assert_equal(@test.movies_info[0]['casting']['17043']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/EwanMcGregor-31599.jpg")
290
+ assert_equal(@test.movies_info[0]['casting']['6407']['name'], "Stephen Lang")
291
+ assert_equal(@test.movies_info[0]['casting']['6407']['character'], "le général Hopgood")
292
+ assert_equal(@test.movies_info[0]['casting']['6407']['idthumb'], "50691")
293
+ assert_equal(@test.movies_info[0]['casting']['6407']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/StephenLang-50691.jpg")
294
+ assert_equal(@test.movies_info[0]['casting']['1052']['name'], "Jeff Bridges")
295
+ assert_equal(@test.movies_info[0]['casting']['1052']['character'], "Bill Django")
296
+ assert_equal(@test.movies_info[0]['casting']['1052']['idthumb'], "31026")
297
+ assert_equal(@test.movies_info[0]['casting']['1052']['thumb'], "http://passion-xbmc.org/scraper/Gallery/main/JeffBridges-31026.jpg")
216
298
  end
217
-
218
299
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cine-passion
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 55
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 9
8
+ - 10
9
9
  - 0
10
- version: 0.9.0
10
+ version: 0.10.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nicolas Ledez
@@ -80,7 +80,7 @@ licenses: []
80
80
  post_install_message: |
81
81
  **************************************************
82
82
 
83
- Thank you for installing cine-passion-0.9.0
83
+ Thank you for installing cine-passion-0.10.0
84
84
 
85
85
  Please request a APIKEY to make real requests.
86
86