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 +5 -0
- data/lib/cine_passion.rb +95 -19
- data/test/test_cine_passion.rb +83 -2
- metadata +4 -4
data/History.txt
CHANGED
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.
|
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="
|
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
|
-
|
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['
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
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'] = {}
|
data/test/test_cine_passion.rb
CHANGED
@@ -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/
|
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:
|
4
|
+
hash: 55
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 10
|
9
9
|
- 0
|
10
|
-
version: 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.
|
83
|
+
Thank you for installing cine-passion-0.10.0
|
84
84
|
|
85
85
|
Please request a APIKEY to make real requests.
|
86
86
|
|