bestmovies 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/bestmovies +6 -0
- data/config/environment.rb +9 -0
- data/lib/best_movies.rb +12 -0
- data/lib/cli.rb +68 -0
- data/lib/movie.rb +30 -0
- data/lib/scraper.rb +16 -0
- metadata +119 -0
checksums.yaml
ADDED
@@ -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
|
data/bin/bestmovies
ADDED
data/lib/best_movies.rb
ADDED
data/lib/cli.rb
ADDED
@@ -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
|
data/lib/movie.rb
ADDED
@@ -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
|
data/lib/scraper.rb
ADDED
@@ -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: []
|