royw-imdb 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -59,7 +59,12 @@ ImdbSearch searches that match on AKA title movies
59
59
 
60
60
  ImdbSearch searches that match on AKA title but without search_aka enabled movies
61
61
  - should have multiple movies
62
- - should have 2 movies from 1998
62
+ - should have no movies from 1998 because title is an aka
63
+
64
+ ImdbSearch searches that match on AKA title "Open Season" movies
65
+ - should have multiple movies
66
+ - should find id tt0400717
67
+ - should have only one movie from 2006
63
68
 
64
69
  ImdbMovie Indiana Jones and the Last Crusade
65
70
  - should query IMDB url
@@ -72,6 +77,6 @@ String unescape_html
72
77
  String strip_tags
73
78
  - should strip HTML tags
74
79
 
75
- Finished in 5.222681 seconds
80
+ Finished in 19.495014 seconds
76
81
 
77
- 53 examples, 0 failures
82
+ 56 examples, 0 failures
@@ -5,8 +5,8 @@ class ImdbMovie
5
5
 
6
6
  def initialize(id, title = nil)
7
7
  @id = id
8
- # @url = "http://www.imdb.com/title/tt#{@id}/"
9
- @url = sprintf(ImdbMovie::url_format, @id.to_s)
8
+ @url = "http://www.imdb.com/title/tt#{@id}/"
9
+ # @url = sprintf(ImdbMovie::url_format, @id.to_s)
10
10
  @title = title
11
11
  end
12
12
 
@@ -14,9 +14,9 @@ class ImdbMovie
14
14
  # should return the path to the cached html file
15
15
  # Note, the returned String should have one '%s'
16
16
  # which will replaced by sprintf with @id.to_s
17
- def self.url_format
18
- 'http://www.imdb.com/title/tt%s/'
19
- end
17
+ # def self.url_format
18
+ # 'http://www.imdb.com/title/tt%s/'
19
+ # end
20
20
 
21
21
  # this is intended to be stubed by rspec where it
22
22
  # should return true.
@@ -192,9 +192,18 @@ class ImdbMovie
192
192
  def document
193
193
  attempts = 0
194
194
  begin
195
- html = open(self.url).read
195
+ if ImdbMovie::use_html_cache
196
+ begin
197
+ filespec = self.url.gsub(/^http:\//, 'spec/samples').gsub(/\/$/, '.html')
198
+ html = open(filespec).read
199
+ rescue Exception
200
+ html = open(self.url).read
201
+ cache_html_files(html)
202
+ end
203
+ else
204
+ html = open(self.url).read
205
+ end
196
206
  @document ||= Hpricot(html)
197
- cache_html_files(html) if ImdbMovie::use_html_cache
198
207
  rescue Exception => e
199
208
  attempts += 1
200
209
  if attempts > MAX_ATTEMPTS
@@ -212,7 +221,7 @@ class ImdbMovie
212
221
  begin
213
222
  filespec = self.url.gsub(/^http:\//, 'spec/samples').gsub(/\/$/, '.html')
214
223
  unless File.exist?(filespec)
215
- puts filespec
224
+ puts "caching #{filespec}"
216
225
  File.mkdirs(File.dirname(filespec))
217
226
  File.open(filespec, 'w') { |f| f.puts html }
218
227
  end
@@ -17,22 +17,17 @@ class ImdbSearch
17
17
  # and the release year.
18
18
  def find_id(options={})
19
19
  id = nil
20
- found_movies = self.movies
21
- unless found_movies.nil?
22
- desired_movies = found_movies.select do |m|
23
- aka = m.also_known_as
24
- result = imdb_compare_titles(m.title, aka, @query) && !m.video_game? && !m.release_year.nil?
25
- if result
26
- unless options[:years].nil?
27
- result = options[:years].include?(m.release_year.to_i)
28
- end
29
- end
30
- result
31
- end
32
- ids = desired_movies.collect{|m| m.id}.uniq.compact
33
- if ids.length == 1
34
- id = "tt#{ids[0]}"
20
+ found_movies = self.movies.select do |m|
21
+ result = true
22
+ unless options[:years].nil?
23
+ result = options[:years].include?(m.release_year.to_i)
35
24
  end
25
+ result
26
+ end
27
+ # p found_movies.collect{|m| [m.id, m.title, m.year]}
28
+ ids = found_movies.collect{|m| m.id}.uniq.compact
29
+ if ids.length == 1
30
+ id = "tt#{ids[0]}"
36
31
  end
37
32
  id
38
33
  end
@@ -93,14 +88,18 @@ class ImdbSearch
93
88
 
94
89
  films = ids_and_titles.map do |id_and_title|
95
90
  ImdbMovie.new(id_and_title[0], id_and_title[1])
96
- end.uniq
91
+ end.uniq.compact
97
92
 
98
- if films.length > 1 && @search_akas
99
- films = films.select do |m|
100
- aka = m.also_known_as
101
- imdb_compare_titles(m.title, aka, @query) && !m.video_game?
93
+ if films.length > 1
94
+ same_title_films = films.select do |m|
95
+ aka = (@search_akas ? m.also_known_as : [])
96
+ !m.video_game? && imdb_compare_titles(m.title, aka, @query)
97
+ end
98
+ if same_title_films.size > 0
99
+ films = same_title_films
102
100
  end
103
101
  end
102
+
104
103
  films
105
104
  end
106
105
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: royw-imdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergio Gil
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-21 00:00:00 -07:00
12
+ date: 2009-03-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency