Sha256: 3e7fae9a7b309a0ae3cd58b4fbe15441f8a896a05eba9c43693315e96acb9d67
Contents?: true
Size: 933 Bytes
Versions: 1
Compression:
Stored size: 933 Bytes
Contents
module Imdb class Search def initialize(query) @query = query end def movies @movies ||= (exact_match? ? parse_movie : parse_movies) end private def document @document ||= Hpricot(open("http://www.imdb.com/find?q=#{CGI::escape(@query)};s=tt").read) end def parse_movies document.search('a[@href^="/title/tt"]').reject do |element| element.innerHTML.strip_tags.empty? end.map do |element| [element['href'][/\d+/], element.innerHTML.strip_tags.unescape_html] end.uniq.map do |values| Imdb::Movie.new(*values) end end def parse_movie id = document.at("a[@name='poster']")['href'][/\d+$/] title = document.at("h1").innerHTML.split('<span').first.strip.unescape_html [Imdb::Movie.new(id, title)] end def exact_match? document.at("title[text()='IMDb Search']").nil? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
langalex-imdb-0.0.8 | lib/imdb/imdb_search.rb |