bestmovies 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '094b0582e1c590f2438fba5b6193ac1ac3f799f95b9064e3dc35e92d38c3112f'
4
+ data.tar.gz: c024239c8e97760b2529d18a7349cb20c2ea6d4d350291053861c0f2aeaa5b9e
5
+ SHA512:
6
+ metadata.gz: 107cebc95c7409c617863dc40610563db7236fb42e8b26def93efb71d64115e97afab224e86c6057d1f3ff30dfca133ab1461749ae2cdaabe698d76006e36858
7
+ data.tar.gz: e62d5a8d940655decd4080f6eea63816da31d0da27e54ce2a80e488069788dd39af617ad6400df59a1dd4b39d1a201a2ad34dbce569002742596de917f2c08cc
@@ -0,0 +1,6 @@
1
+ gem#!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require_relative "../config/environment"
5
+
6
+ BestMoviesNearMe::CLI.new.call
@@ -0,0 +1,9 @@
1
+ require 'pry'
2
+ require 'nokogiri'
3
+ require 'open-uri'
4
+
5
+ Bundler.require
6
+
7
+ require_all 'lib'
8
+
9
+ require_relative '../lib/cli/data/gem/project/version'
@@ -0,0 +1,12 @@
1
+ require 'pry'
2
+ require 'nokogiri'
3
+ require 'open-uri'
4
+
5
+ require_relative '../lib/scraper'
6
+ require_relative '../lib/movie'
7
+ require_relative '../lib/cli'
8
+ require_relative '../lib/cli/data/gem/project/version'
9
+
10
+ module BestMoviesNearMe
11
+ end
12
+
@@ -0,0 +1,68 @@
1
+ class BestMoviesNearMe::CLI
2
+
3
+ def call
4
+ BestMoviesNearMe::Scraper.new.create_movie
5
+ puts "Welcome to GoodMovieFinder, where we cut out the bullshit and fake reviews to find *actual* quality movies *actually* playing near you."
6
+ start
7
+ end
8
+
9
+ def start
10
+ puts ""
11
+ puts "What caliber of movie would you like to see? Excellent, Good, So-So, or Shitty?"
12
+ input = gets.strip.capitalize
13
+
14
+ print_movies(input)
15
+
16
+ puts ""
17
+ puts "Which movie would you like more info on?"
18
+ input = gets.strip
19
+
20
+ movie = BestMoviesNearMe::Movie.find(input.to_i)
21
+
22
+ print_movie(movie)
23
+
24
+ puts ""
25
+ puts "Want to see another movie? Enter Y or N"
26
+
27
+ input = gets.strip.downcase
28
+ if input == "y"
29
+ start
30
+ elsif input == "n"
31
+ puts ""
32
+ puts "See Ya"
33
+ exit
34
+ else
35
+ puts ""
36
+ puts "Invalid answer."
37
+ start
38
+ end
39
+ end
40
+
41
+ def print_movie(movie)
42
+ puts ""
43
+ puts "Title: #{movie.title}"
44
+ puts ""
45
+ puts "Synopsis: #{movie.synopsis}"
46
+ puts ""
47
+ puts "Metascore: #{movie.metascore}"
48
+ puts ""
49
+ puts "Showtimes: #{movie.showtimes}"
50
+ puts ""
51
+ end
52
+
53
+ def print_movies(caliber)
54
+     puts ""
55
+     puts "---- #{caliber} movies ----"
56
+     puts ""
57
+    
58
+    
59
+     caliber_array = WorldsBestRestaurants::Movie.all.select {|m| m['quality'] == caliber }
60
+    
61
+    
62
+     caliber_array.each_with_index do |movie, index|
63
+       puts "#{index+1}). #{movie.title} - #{movie.metascore}"
64
+     end
65
+   end
66
+
67
+
68
+ end
@@ -0,0 +1,30 @@
1
+ class BestMoviesNearMe::Movie
2
+
3
+ attr_accessor :title, :metascore, :synopsis, :showtimes, :quality
4
+
5
+ @@all = []
6
+
7
+ def self.new_from_index_page(m)
8
+ self.new(
9
+ m.css("h1.header").text,
10
+ m.css("span.metascore").text.to_i,
11
+ m.css("div.outline").text,
12
+ m.css("div.list detail").text
13
+ )
14
+ end
15
+
16
+ def initialize(title=nil, metascore=nil, synopsis=nil, showtimes=nil, qulaity=nil)
17
+ @title = title
18
+ @metascore = metascore
19
+ @synopsis = synopsis
20
+ @showtimes = showtimes
21
+ @quality = qual_sorter
22
+ @@all << self
23
+ end
24
+
25
+ def qual_sorter
26
+
27
+ end
28
+
29
+
30
+ end
@@ -0,0 +1,16 @@
1
+ class BestMoviesNearMe::Scraper
2
+
3
+ def get_page
4
+ Nokogiri::HTML(open("https://www.imdb.com/showtimes/location?ref_=sh_lc&sort=user_rating,desc"))
5
+ end
6
+
7
+ def scrape_movie_listings
8
+ self.get_page.css("div.lister-item-image ribbonize a").attribute("href").value
9
+   end
10
+  
11
+   def create_movie
12
+     scrape_movie_listings.each do |m|
13
+       BestMoviesNearMe::Moive.new_from_index_page(m)
14
+     end
15
+   end
16
+ end 
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bestmovies
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - theouternet
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-01-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.1
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: Lists Movies That Are Actually Good, Actually Playing Near Me
84
+ email: steveholt04@gmail.com
85
+ executables:
86
+ - bestmovies
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - bin/bestmovies
91
+ - config/environment.rb
92
+ - lib/best_movies.rb
93
+ - lib/cli.rb
94
+ - lib/movie.rb
95
+ - lib/scraper.rb
96
+ homepage: https://github.com/theouternet/cli-data-gem-project
97
+ licenses:
98
+ - MIT
99
+ metadata: {}
100
+ post_install_message:
101
+ rdoc_options: []
102
+ require_paths:
103
+ - lib
104
+ required_ruby_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ requirements: []
115
+ rubygems_version: 3.0.3
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Best Movies Near Me
119
+ test_files: []