royw-imdb 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -1
- data/lib/imdb/imdb_search.rb +22 -2
- metadata +1 -1
data/README
CHANGED
data/lib/imdb/imdb_search.rb
CHANGED
@@ -5,12 +5,17 @@ class ImdbSearch
|
|
5
5
|
def initialize(query, search_akas=false)
|
6
6
|
@query = query
|
7
7
|
@search_akas = search_akas
|
8
|
+
@cache = {}
|
8
9
|
end
|
9
10
|
|
10
11
|
def movies
|
11
12
|
@movies ||= parse_movies_from_document
|
12
13
|
end
|
13
14
|
|
15
|
+
def set_cache(cache)
|
16
|
+
@cache = cache
|
17
|
+
end
|
18
|
+
|
14
19
|
# Find the IMDB ID for the current search title
|
15
20
|
# The find can be helped a lot by including a years option that contains
|
16
21
|
# an Array of integers that are the production year (plus/minus a year)
|
@@ -62,6 +67,21 @@ class ImdbSearch
|
|
62
67
|
(t1.gsub('more at imdbpro ?', '') == t2)
|
63
68
|
end
|
64
69
|
|
70
|
+
def getMovie(id, title)
|
71
|
+
obj = nil
|
72
|
+
unless id.blank?
|
73
|
+
name = id.to_s
|
74
|
+
name += ' ' + title unless title.blank?
|
75
|
+
obj = @cache[name]
|
76
|
+
if obj.nil?
|
77
|
+
obj = ImdbMovie.new(id,title)
|
78
|
+
@cache[name] = obj
|
79
|
+
end
|
80
|
+
end
|
81
|
+
obj
|
82
|
+
end
|
83
|
+
|
84
|
+
|
65
85
|
private
|
66
86
|
|
67
87
|
def document
|
@@ -76,7 +96,7 @@ class ImdbSearch
|
|
76
96
|
def parse_exact_match_search_results
|
77
97
|
id = document.at("a[@name='poster']")['href'][/\d+$/]
|
78
98
|
title = document.at("h1").innerHTML.split('<span').first.strip.unescape_html rescue nil
|
79
|
-
[
|
99
|
+
[getMovie(id, title)]
|
80
100
|
end
|
81
101
|
|
82
102
|
def parse_multi_movie_search_results
|
@@ -87,7 +107,7 @@ class ImdbSearch
|
|
87
107
|
end.uniq
|
88
108
|
|
89
109
|
films = ids_and_titles.map do |id_and_title|
|
90
|
-
|
110
|
+
getMovie(id_and_title[0], id_and_title[1])
|
91
111
|
end.uniq.compact
|
92
112
|
|
93
113
|
if films.length > 1
|