omelete 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/omelete/detailed_page.rb +59 -36
- data/lib/omelete/models/movie.rb +2 -11
- data/lib/omelete/models/showtime.rb +1 -1
- data/lib/omelete/movie_page.rb +48 -0
- data/lib/omelete.rb +5 -5
- data/lib/version.rb +1 -1
- metadata +107 -67
- data/lib/omelete/main_page.rb +0 -54
| @@ -10,9 +10,12 @@ require 'showtime' | |
| 10 10 |  | 
| 11 11 | 
             
            module Omelete
         | 
| 12 12 | 
             
              class DetailedPage
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                def  | 
| 13 | 
            +
                
         | 
| 14 | 
            +
                def initialize(page,link)
         | 
| 15 15 | 
             
                  @page = page.link_with(:href => link).click
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
                
         | 
| 18 | 
            +
                def movie_poi(movie)
         | 
| 16 19 | 
             
                  movie.movie_theaters = movie_theaters(movie) unless @page.search('//div[@class = "programacao_cinema"]').first.nil?
         | 
| 17 20 | 
             
                  movie.showtimes = showtimes(movie) unless @page.search('//div[@class = "programacao_cinema"]').first.nil?
         | 
| 18 21 | 
             
                  movie.synopsis = synopsis(movie) unless @page.search("//div[@id = \"tab_#{movie.id}_sinopse\"]/blockquote").first.nil?
         | 
| @@ -22,67 +25,87 @@ module Omelete | |
| 22 25 | 
             
                  end
         | 
| 23 26 | 
             
                  movie
         | 
| 24 27 | 
             
                end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                def self.movie_theaters(movie)
         | 
| 27 | 
            -
                  movie_theaters = []
         | 
| 28 | 
            -
                  @page.search('//div[@class = "programacao_cinema"]/h2/a').each do |movie_theater|
         | 
| 29 | 
            -
                    movie_theaters << movie_theater.content if movie_theater
         | 
| 30 | 
            -
                  end
         | 
| 31 | 
            -
                  movie_theaters
         | 
| 32 | 
            -
                end
         | 
| 33 | 
            -
              
         | 
| 34 | 
            -
                def self.showtimes(movie)
         | 
| 35 | 
            -
                  showtimes = []
         | 
| 36 | 
            -
                  @page.search('//div[@class = "programacao_cinema"]/h2/a').each do |movie_theater|      
         | 
| 37 | 
            -
                    showtimes << ShowtimeAndTheater.create_showtime_with(@page,movie_theater.content,movie) if movie_theater
         | 
| 38 | 
            -
                  end
         | 
| 39 | 
            -
                  showtimes
         | 
| 40 | 
            -
                end
         | 
| 41 28 |  | 
| 42 | 
            -
             | 
| 43 | 
            -
                def self.synopsis(movie)
         | 
| 29 | 
            +
                def synopsis(movie)
         | 
| 44 30 | 
             
                  @page.search("//div[@id = \"tab_#{movie.id}_sinopse\"]/blockquote").first.content
         | 
| 45 31 | 
             
                end
         | 
| 46 32 |  | 
| 47 | 
            -
                def  | 
| 33 | 
            +
                def cast(movie)
         | 
| 48 34 | 
             
                  @page.search("//div[@id = \"tab_#{movie.id}_ficha\"]/dl/dd").first.content.delete("\r\n")
         | 
| 49 35 | 
             
                end
         | 
| 50 36 |  | 
| 51 | 
            -
                def  | 
| 37 | 
            +
                def directed_by(movie)    
         | 
| 52 38 | 
             
                  directed_by = ""
         | 
| 53 39 | 
             
                  @page.search("//div[@id = \"tab_#{movie.id}_ficha\"]/dl").first.children.each do |child|
         | 
| 54 40 | 
             
                    directed_by = child.content if child.node_name == "dd" && child.previous_element && child.previous_element.content == "Direção:"
         | 
| 55 41 | 
             
                  end
         | 
| 56 42 | 
             
                  directed_by.delete("\r\n")
         | 
| 57 43 | 
             
                end
         | 
| 44 | 
            +
                
         | 
| 45 | 
            +
                def movie_theaters(movie)
         | 
| 46 | 
            +
                  movie_theaters = []
         | 
| 47 | 
            +
                  @page.search('//div[@class = "programacao_cinema"]/h2/a').each do |movie_theater|
         | 
| 48 | 
            +
                    movie_theaters << movie_theater.content if movie_theater
         | 
| 49 | 
            +
                  end
         | 
| 50 | 
            +
                  movie_theaters
         | 
| 51 | 
            +
                end
         | 
| 58 52 |  | 
| 53 | 
            +
                def showtimes(movie)
         | 
| 54 | 
            +
                  showtimes = []
         | 
| 55 | 
            +
                  movie_theaters=[]
         | 
| 56 | 
            +
                  obs=[]
         | 
| 57 | 
            +
                  @page.search('//div[@class = "programacao_cinema"]').each do |movie_theater_doc|
         | 
| 58 | 
            +
                    movie_theater = movie_theater_doc.search('h2').first.search('a').first
         | 
| 59 | 
            +
                    movie_theaters << movie_theater.content
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
                  
         | 
| 62 | 
            +
                  @page.parser.xpath('//div[@class="programacao_horarios"]/table/tfoot/tr').each do |tfoot_tr_doc|        
         | 
| 63 | 
            +
                    obs << tfoot_tr_doc.content.strip.delete("\n")
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
                  
         | 
| 66 | 
            +
                  i = 0
         | 
| 67 | 
            +
                  mi = 0
         | 
| 68 | 
            +
                  @page.parser.xpath('//div[@class="programacao_horarios"]/table/tr').each do |tr_doc|
         | 
| 69 | 
            +
                    unless tr_doc.content.include?("Sala")
         | 
| 70 | 
            +
                      mi += 1 if i > 0 && i.even?
         | 
| 71 | 
            +
                      mt = movie_theaters.at(mi)
         | 
| 72 | 
            +
                      observ = obs.at(mi)
         | 
| 73 | 
            +
                      sat = ShowtimeAndTheater.new tr_doc
         | 
| 74 | 
            +
                      showtimes << sat.create_showtime_with(mt,movie,observ)
         | 
| 75 | 
            +
                      i += 1
         | 
| 76 | 
            +
                    end
         | 
| 77 | 
            +
                  end
         | 
| 78 | 
            +
                  
         | 
| 79 | 
            +
                  showtimes
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
                
         | 
| 59 82 | 
             
              end
         | 
| 60 83 |  | 
| 61 84 | 
             
              class ShowtimeAndTheater
         | 
| 62 | 
            -
                 | 
| 63 | 
            -
                   | 
| 85 | 
            +
                
         | 
| 86 | 
            +
                def initialize(doc)      
         | 
| 87 | 
            +
                  @doc = doc
         | 
| 88 | 
            +
                end
         | 
| 89 | 
            +
                
         | 
| 90 | 
            +
                def create_showtime_with(movie_theater,movie,observ)      
         | 
| 64 91 | 
             
                  showtime = Showtime.new(nil,nil,nil,movie,nil,movie_theater)
         | 
| 65 92 | 
             
                  showtime.time = time
         | 
| 66 93 | 
             
                  showtime.theater = theater
         | 
| 67 94 | 
             
                  showtime.kind = kind
         | 
| 68 | 
            -
                  showtime.obs =  | 
| 95 | 
            +
                  showtime.obs = observ
         | 
| 69 96 | 
             
                  showtime
         | 
| 70 97 | 
             
                end
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                def  | 
| 73 | 
            -
                  @ | 
| 74 | 
            -
                end
         | 
| 75 | 
            -
              
         | 
| 76 | 
            -
                def self.kind
         | 
| 77 | 
            -
                  @page.search('//tr[@class = "even"]/td').first.next_element.content
         | 
| 98 | 
            +
                
         | 
| 99 | 
            +
                def time
         | 
| 100 | 
            +
                  @doc.search('td').last.content
         | 
| 78 101 | 
             
                end
         | 
| 79 102 |  | 
| 80 | 
            -
                def  | 
| 81 | 
            -
                  @ | 
| 103 | 
            +
                def kind
         | 
| 104 | 
            +
                  @doc.search('td').first.next_element.content
         | 
| 82 105 | 
             
                end
         | 
| 83 106 |  | 
| 84 | 
            -
                def  | 
| 85 | 
            -
                  @ | 
| 107 | 
            +
                def theater
         | 
| 108 | 
            +
                  @doc.search('td').first.content
         | 
| 86 109 | 
             
                end
         | 
| 87 110 |  | 
| 88 111 | 
             
              end
         | 
    
        data/lib/omelete/models/movie.rb
    CHANGED
    
    | @@ -2,21 +2,12 @@ | |
| 2 2 | 
             
            module Omelete
         | 
| 3 3 | 
             
              class Movie
         | 
| 4 4 |  | 
| 5 | 
            -
                attr_accessor :id, :name, :status, :runtime, :cast, :genre, :directed_by
         | 
| 5 | 
            +
                attr_accessor :id, :name, :status, :runtime, :cast, :genre, :directed_by, :city, :state
         | 
| 6 6 | 
             
                attr_accessor :age_rating, :synopsis, :image, :movie_theaters, :showtimes
         | 
| 7 7 |  | 
| 8 | 
            -
                def initialize(id, name | 
| 8 | 
            +
                def initialize(id, name)
         | 
| 9 9 | 
             
                  @id = id
         | 
| 10 10 | 
             
                  @name = name
         | 
| 11 | 
            -
                  @status = status
         | 
| 12 | 
            -
                  @runtime = runtime
         | 
| 13 | 
            -
                  @cast = cast
         | 
| 14 | 
            -
                  @genre = genre
         | 
| 15 | 
            -
                  @directed_by = directed_by
         | 
| 16 | 
            -
                  @age_rating = age_rating
         | 
| 17 | 
            -
              		@synopsis = synopsis
         | 
| 18 | 
            -
              		@image = image
         | 
| 19 | 
            -
              		@movie_theaters = movie_theaters
         | 
| 20 11 | 
             
                end
         | 
| 21 12 | 
             
              end
         | 
| 22 13 | 
             
            end
         | 
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            # -*- encoding : utf-8 -*-
         | 
| 2 | 
            +
            #!/usr/bin/env ruby
         | 
| 3 | 
            +
            $:.unshift File.expand_path('../', __FILE__)
         | 
| 4 | 
            +
            $:.unshift File.expand_path('../models', __FILE__)
         | 
| 5 | 
            +
            require 'rubygems'
         | 
| 6 | 
            +
            require 'open-uri'
         | 
| 7 | 
            +
            require 'nokogiri'
         | 
| 8 | 
            +
            require 'mechanize'
         | 
| 9 | 
            +
            require 'movie'
         | 
| 10 | 
            +
            require 'detailed_page'
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            module Omelete
         | 
| 13 | 
            +
              class MoviePage
         | 
| 14 | 
            +
                URL = "http://omelete.uol.com.br/filmes-em-cartaz"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def initialize(state,city)
         | 
| 17 | 
            +
                  @state = state
         | 
| 18 | 
            +
                  @city = city
         | 
| 19 | 
            +
                  @agent = Mechanize.new {|agent| agent.user_agent_alias = 'Mac Safari'}
         | 
| 20 | 
            +
                  @agent.get(URL + "?uf=#{@state}&cidade=#{@city}"){ |page| @page = page }
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                def movies
         | 
| 24 | 
            +
                  @movies = []
         | 
| 25 | 
            +
                  @page.search('//div[@class = "programacao_filme"]').each do |movie_doc|
         | 
| 26 | 
            +
                    link = movie_doc.search('p').first.search('a').first.attr('href')
         | 
| 27 | 
            +
                    id = id_from(link)
         | 
| 28 | 
            +
                    name = movie_doc.search('h2').first.search('a').first.content.strip
         | 
| 29 | 
            +
                    movie = Movie.new(id,name)
         | 
| 30 | 
            +
                    
         | 
| 31 | 
            +
                    info = movie_doc.search('h4').first.content.strip.split('-')
         | 
| 32 | 
            +
                    movie.genre = info[0]
         | 
| 33 | 
            +
                    movie.runtime = info[1]
         | 
| 34 | 
            +
                    movie.age_rating = info[2]
         | 
| 35 | 
            +
                    movie.image = movie_doc.search('div').first.search('a').first.attr('href').strip unless movie_doc.search('div').first.search('a').first.nil?          
         | 
| 36 | 
            +
                    
         | 
| 37 | 
            +
                    dp = DetailedPage.new(@page, link)        
         | 
| 38 | 
            +
                    @movies << dp.movie_poi(movie)
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                  @movies
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                def id_from(link)
         | 
| 44 | 
            +
                  link.match(/\d+/)[0]
         | 
| 45 | 
            +
                end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
            end
         | 
    
        data/lib/omelete.rb
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            # encoding: utf-8 
         | 
| 1 | 
            +
            # -*- encoding : utf-8 -*-
         | 
| 2 2 | 
             
            #!/usr/bin/env ruby
         | 
| 3 3 | 
             
            require 'nokogiri'
         | 
| 4 4 | 
             
            require 'open-uri'
         | 
| 5 | 
            -
            require File.expand_path('../omelete/ | 
| 5 | 
            +
            require File.expand_path('../omelete/movie_page', __FILE__)
         | 
| 6 6 |  | 
| 7 7 |  | 
| 8 8 | 
             
            module Omelete
         | 
| @@ -12,12 +12,12 @@ module Omelete | |
| 12 12 | 
             
                def initialize(state,city)
         | 
| 13 13 | 
             
                  @state=state
         | 
| 14 14 | 
             
                  @city=city
         | 
| 15 | 
            -
                  @ | 
| 15 | 
            +
                  @movie_page = MoviePage.new(state,city)
         | 
| 16 16 | 
             
                end
         | 
| 17 17 |  | 
| 18 18 | 
             
                def movies
         | 
| 19 | 
            -
                  @ | 
| 19 | 
            +
                  @movie_page.movies if @movie_page
         | 
| 20 20 | 
             
                end
         | 
| 21 | 
            -
             | 
| 21 | 
            +
             | 
| 22 22 | 
             
              end
         | 
| 23 23 | 
             
            end
         | 
    
        data/lib/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,117 +1,157 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification
         | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: omelete
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
               | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              hash: 21
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 | 
            +
              segments: 
         | 
| 7 | 
            +
              - 0
         | 
| 8 | 
            +
              - 0
         | 
| 9 | 
            +
              - 5
         | 
| 10 | 
            +
              version: 0.0.5
         | 
| 6 11 | 
             
            platform: ruby
         | 
| 7 | 
            -
            authors:
         | 
| 12 | 
            +
            authors: 
         | 
| 8 13 | 
             
            - Mauricio Voto
         | 
| 9 14 | 
             
            autorequire: 
         | 
| 10 15 | 
             
            bindir: bin
         | 
| 11 16 | 
             
            cert_chain: []
         | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 17 | 
            +
             | 
| 18 | 
            +
            date: 2012-05-15 00:00:00 Z
         | 
| 19 | 
            +
            dependencies: 
         | 
| 20 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 15 21 | 
             
              name: nokogiri
         | 
| 16 | 
            -
               | 
| 22 | 
            +
              prerelease: false
         | 
| 23 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 17 24 | 
             
                none: false
         | 
| 18 | 
            -
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 20 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                     | 
| 25 | 
            +
                requirements: 
         | 
| 26 | 
            +
                - - ">="
         | 
| 27 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            +
                    hash: 3
         | 
| 29 | 
            +
                    segments: 
         | 
| 30 | 
            +
                    - 0
         | 
| 31 | 
            +
                    version: "0"
         | 
| 22 32 | 
             
              type: :runtime
         | 
| 23 | 
            -
               | 
| 24 | 
            -
             | 
| 25 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 33 | 
            +
              version_requirements: *id001
         | 
| 34 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 26 35 | 
             
              name: mechanize
         | 
| 27 | 
            -
               | 
| 36 | 
            +
              prerelease: false
         | 
| 37 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 28 38 | 
             
                none: false
         | 
| 29 | 
            -
                requirements:
         | 
| 30 | 
            -
                - -  | 
| 31 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                     | 
| 39 | 
            +
                requirements: 
         | 
| 40 | 
            +
                - - ">="
         | 
| 41 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 42 | 
            +
                    hash: 3
         | 
| 43 | 
            +
                    segments: 
         | 
| 44 | 
            +
                    - 0
         | 
| 45 | 
            +
                    version: "0"
         | 
| 33 46 | 
             
              type: :runtime
         | 
| 34 | 
            -
               | 
| 35 | 
            -
             | 
| 36 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 47 | 
            +
              version_requirements: *id002
         | 
| 48 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 37 49 | 
             
              name: rspec
         | 
| 38 | 
            -
               | 
| 50 | 
            +
              prerelease: false
         | 
| 51 | 
            +
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 39 52 | 
             
                none: false
         | 
| 40 | 
            -
                requirements:
         | 
| 53 | 
            +
                requirements: 
         | 
| 41 54 | 
             
                - - ~>
         | 
| 42 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 43 | 
            -
                     | 
| 55 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 56 | 
            +
                    hash: 13
         | 
| 57 | 
            +
                    segments: 
         | 
| 58 | 
            +
                    - 2
         | 
| 59 | 
            +
                    - 7
         | 
| 60 | 
            +
                    version: "2.7"
         | 
| 44 61 | 
             
              type: :development
         | 
| 45 | 
            -
               | 
| 46 | 
            -
             | 
| 47 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 62 | 
            +
              version_requirements: *id003
         | 
| 63 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 48 64 | 
             
              name: vcr
         | 
| 49 | 
            -
               | 
| 65 | 
            +
              prerelease: false
         | 
| 66 | 
            +
              requirement: &id004 !ruby/object:Gem::Requirement 
         | 
| 50 67 | 
             
                none: false
         | 
| 51 | 
            -
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 53 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                     | 
| 68 | 
            +
                requirements: 
         | 
| 69 | 
            +
                - - ">="
         | 
| 70 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 71 | 
            +
                    hash: 3
         | 
| 72 | 
            +
                    segments: 
         | 
| 73 | 
            +
                    - 0
         | 
| 74 | 
            +
                    version: "0"
         | 
| 55 75 | 
             
              type: :development
         | 
| 56 | 
            -
               | 
| 57 | 
            -
             | 
| 58 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 76 | 
            +
              version_requirements: *id004
         | 
| 77 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 59 78 | 
             
              name: webmock
         | 
| 60 | 
            -
               | 
| 79 | 
            +
              prerelease: false
         | 
| 80 | 
            +
              requirement: &id005 !ruby/object:Gem::Requirement 
         | 
| 61 81 | 
             
                none: false
         | 
| 62 | 
            -
                requirements:
         | 
| 63 | 
            -
                - - =
         | 
| 64 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 82 | 
            +
                requirements: 
         | 
| 83 | 
            +
                - - "="
         | 
| 84 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 85 | 
            +
                    hash: 55
         | 
| 86 | 
            +
                    segments: 
         | 
| 87 | 
            +
                    - 1
         | 
| 88 | 
            +
                    - 8
         | 
| 89 | 
            +
                    - 0
         | 
| 65 90 | 
             
                    version: 1.8.0
         | 
| 66 91 | 
             
              type: :development
         | 
| 67 | 
            -
               | 
| 68 | 
            -
             | 
| 69 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 92 | 
            +
              version_requirements: *id005
         | 
| 93 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 70 94 | 
             
              name: rake
         | 
| 71 | 
            -
               | 
| 95 | 
            +
              prerelease: false
         | 
| 96 | 
            +
              requirement: &id006 !ruby/object:Gem::Requirement 
         | 
| 72 97 | 
             
                none: false
         | 
| 73 | 
            -
                requirements:
         | 
| 74 | 
            -
                - -  | 
| 75 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 76 | 
            -
                     | 
| 98 | 
            +
                requirements: 
         | 
| 99 | 
            +
                - - ">="
         | 
| 100 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 101 | 
            +
                    hash: 3
         | 
| 102 | 
            +
                    segments: 
         | 
| 103 | 
            +
                    - 0
         | 
| 104 | 
            +
                    version: "0"
         | 
| 77 105 | 
             
              type: :development
         | 
| 78 | 
            -
               | 
| 79 | 
            -
              version_requirements: *70163663867280
         | 
| 106 | 
            +
              version_requirements: *id006
         | 
| 80 107 | 
             
            description: Ruby web crawler to access omelete informations
         | 
| 81 | 
            -
            email:
         | 
| 108 | 
            +
            email: 
         | 
| 82 109 | 
             
            - mauriciovoto@gmail.com
         | 
| 83 110 | 
             
            executables: []
         | 
| 111 | 
            +
             | 
| 84 112 | 
             
            extensions: []
         | 
| 113 | 
            +
             | 
| 85 114 | 
             
            extra_rdoc_files: []
         | 
| 86 | 
            -
             | 
| 115 | 
            +
             | 
| 116 | 
            +
            files: 
         | 
| 87 117 | 
             
            - lib/omelete/detailed_page.rb
         | 
| 88 | 
            -
            - lib/omelete/main_page.rb
         | 
| 89 118 | 
             
            - lib/omelete/models/movie.rb
         | 
| 90 119 | 
             
            - lib/omelete/models/showtime.rb
         | 
| 120 | 
            +
            - lib/omelete/movie_page.rb
         | 
| 91 121 | 
             
            - lib/omelete.rb
         | 
| 92 122 | 
             
            - lib/version.rb
         | 
| 93 123 | 
             
            homepage: http://github.com/mvoto/omelete
         | 
| 94 124 | 
             
            licenses: []
         | 
| 125 | 
            +
             | 
| 95 126 | 
             
            post_install_message: 
         | 
| 96 127 | 
             
            rdoc_options: []
         | 
| 97 | 
            -
             | 
| 128 | 
            +
             | 
| 129 | 
            +
            require_paths: 
         | 
| 98 130 | 
             
            - lib
         | 
| 99 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 131 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 100 132 | 
             
              none: false
         | 
| 101 | 
            -
              requirements:
         | 
| 102 | 
            -
              - -  | 
| 103 | 
            -
                - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                   | 
| 105 | 
            -
             | 
| 133 | 
            +
              requirements: 
         | 
| 134 | 
            +
              - - ">="
         | 
| 135 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 136 | 
            +
                  hash: 3
         | 
| 137 | 
            +
                  segments: 
         | 
| 138 | 
            +
                  - 0
         | 
| 139 | 
            +
                  version: "0"
         | 
| 140 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 106 141 | 
             
              none: false
         | 
| 107 | 
            -
              requirements:
         | 
| 108 | 
            -
              - -  | 
| 109 | 
            -
                - !ruby/object:Gem::Version
         | 
| 110 | 
            -
                   | 
| 142 | 
            +
              requirements: 
         | 
| 143 | 
            +
              - - ">="
         | 
| 144 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 145 | 
            +
                  hash: 3
         | 
| 146 | 
            +
                  segments: 
         | 
| 147 | 
            +
                  - 0
         | 
| 148 | 
            +
                  version: "0"
         | 
| 111 149 | 
             
            requirements: []
         | 
| 150 | 
            +
             | 
| 112 151 | 
             
            rubyforge_project: 
         | 
| 113 | 
            -
            rubygems_version: 1.8. | 
| 152 | 
            +
            rubygems_version: 1.8.15
         | 
| 114 153 | 
             
            signing_key: 
         | 
| 115 154 | 
             
            specification_version: 3
         | 
| 116 155 | 
             
            summary: Ruby web crawler to access omelete informations
         | 
| 117 156 | 
             
            test_files: []
         | 
| 157 | 
            +
             | 
    
        data/lib/omelete/main_page.rb
    DELETED
    
    | @@ -1,54 +0,0 @@ | |
| 1 | 
            -
            # -*- encoding : utf-8 -*-
         | 
| 2 | 
            -
            #!/usr/bin/env ruby
         | 
| 3 | 
            -
            $:.unshift File.expand_path('../', __FILE__)
         | 
| 4 | 
            -
            $:.unshift File.expand_path('../models', __FILE__)
         | 
| 5 | 
            -
            require 'rubygems'
         | 
| 6 | 
            -
            require 'open-uri'
         | 
| 7 | 
            -
            require 'nokogiri'
         | 
| 8 | 
            -
            require 'mechanize'
         | 
| 9 | 
            -
            require 'movie'
         | 
| 10 | 
            -
            require 'detailed_page'
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            module Omelete
         | 
| 13 | 
            -
              class MainPage
         | 
| 14 | 
            -
                URL = "http://omelete.uol.com.br/filmes-em-cartaz"
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                def initialize(state,city)
         | 
| 17 | 
            -
                  @state=state
         | 
| 18 | 
            -
                  @city=city
         | 
| 19 | 
            -
                  @agent = Mechanize.new {|agent| agent.user_agent_alias = 'Mac Safari'}
         | 
| 20 | 
            -
                end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                def movies
         | 
| 23 | 
            -
                  @movies = []
         | 
| 24 | 
            -
                  @agent.get(URL + "?uf=#{@state}&cidade=#{@city}&filme=&filme_id=") do |page|
         | 
| 25 | 
            -
                    # page.search('//div[@style = "margin-right: 38%;"]/h2').each do |movie_status|
         | 
| 26 | 
            -
                      page.search('//div[@class = "programacao_filme"]').each do |movie_doc|
         | 
| 27 | 
            -
                        # status = movie_doc.content.delete("\n").strip
         | 
| 28 | 
            -
                        @movies << create_movie_with(movie_doc,nil,page)
         | 
| 29 | 
            -
                      end
         | 
| 30 | 
            -
                    # end
         | 
| 31 | 
            -
                  end
         | 
| 32 | 
            -
                  @movies
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                def create_movie_with(movie_doc,status,page)
         | 
| 36 | 
            -
                  name = movie_doc.search('h2').first.search('a').first.content.strip
         | 
| 37 | 
            -
                  info = movie_doc.search('h4').first.content.strip.split('-')
         | 
| 38 | 
            -
                  genre = info[0]
         | 
| 39 | 
            -
                  runtime = info[1]
         | 
| 40 | 
            -
                  age_rating = info[2]
         | 
| 41 | 
            -
                  link = movie_doc.search('p').first.search('a').first.attr('href')
         | 
| 42 | 
            -
                  id = id_from(link)
         | 
| 43 | 
            -
                  image = movie_doc.search('div').first.search('a').first.attr('href').strip unless movie_doc.search('div').first.search('a').first.nil?
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                  movie = Movie.new(id,name,status,runtime,nil,genre,nil,age_rating,nil,nil,image)
         | 
| 46 | 
            -
                  complete_movie = DetailedPage.movie_poi(movie,link,page)
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
             | 
| 49 | 
            -
                def id_from(link)
         | 
| 50 | 
            -
                  link.match(/\d+/)[0]
         | 
| 51 | 
            -
                end
         | 
| 52 | 
            -
             | 
| 53 | 
            -
              end
         | 
| 54 | 
            -
            end
         |