movie_helper 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfce5bb70b13d455cc3aacf68cdbd09790194c0c706a19e89005bea4c9da1e5c
4
- data.tar.gz: 2ca69f3673ba16946e6ac60c6132dde123dc63439034d8b4d885cf4b391bad5f
3
+ metadata.gz: fa54b6f8a53c1c775d026a5767bc3637a2b7ac7d6f0cd758b4ad6f35773e7a49
4
+ data.tar.gz: 21efd0f5d55bcee6ab6d6faa14ac506c89e524387fc88fe4f3fe0ff18fe65a23
5
5
  SHA512:
6
- metadata.gz: b6e695ad564f3f8c17e2cb6ae7b2456069259a5eb79ba9da39b988f6514dd44b83539ca1067de673712eecf797eaa3aec585b95f40d4a82975003a7144f53181
7
- data.tar.gz: 7532951c1d9c0677d3150dfe17c8c911610cdf9e67fbb4c86b9479d54a94eaf0b307e92fdc810b69910479028812eaf51248ba5aae8d766da86ab0defc8c2b90
6
+ metadata.gz: c05b0fb4c23b76ffada37af8df019de5ddfa9d749a3bafec9afb05553694d7bd05a106d7eb4c672acf7189eab0c5c3211f2e5a6be3aea3d9bd4136de7af5d922
7
+ data.tar.gz: 4614cc2684a2ada4cb768cbbfba77e2f5dfd27f5163432d9634783763693813eb48c87299c4225d9766dc19e8824997214d8f7001473f38b49fbbcaa57a1a0d5
data/.DS_Store CHANGED
Binary file
@@ -3,5 +3,5 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.3.3
7
- before_install: gem install bundler -v 1.16.4
6
+ - 2.6.4
7
+ before_install: gem install bundler -v 2.1.4
@@ -1,45 +1,45 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- movie_helper (0.1.0)
4
+ movie_helper (0.2.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- coderay (1.1.2)
10
- diff-lcs (1.3)
11
- method_source (0.9.2)
9
+ coderay (1.1.3)
10
+ diff-lcs (1.4.4)
11
+ method_source (1.0.0)
12
12
  mini_portile2 (2.4.0)
13
- nokogiri (1.10.3)
13
+ nokogiri (1.10.10)
14
14
  mini_portile2 (~> 2.4.0)
15
- pry (0.12.2)
16
- coderay (~> 1.1.0)
17
- method_source (~> 0.9.0)
18
- rake (10.5.0)
19
- rspec (3.8.0)
20
- rspec-core (~> 3.8.0)
21
- rspec-expectations (~> 3.8.0)
22
- rspec-mocks (~> 3.8.0)
23
- rspec-core (3.8.0)
24
- rspec-support (~> 3.8.0)
25
- rspec-expectations (3.8.4)
15
+ pry (0.13.1)
16
+ coderay (~> 1.1)
17
+ method_source (~> 1.0)
18
+ rake (13.0.1)
19
+ rspec (3.9.0)
20
+ rspec-core (~> 3.9.0)
21
+ rspec-expectations (~> 3.9.0)
22
+ rspec-mocks (~> 3.9.0)
23
+ rspec-core (3.9.2)
24
+ rspec-support (~> 3.9.3)
25
+ rspec-expectations (3.9.2)
26
26
  diff-lcs (>= 1.2.0, < 2.0)
27
- rspec-support (~> 3.8.0)
28
- rspec-mocks (3.8.0)
27
+ rspec-support (~> 3.9.0)
28
+ rspec-mocks (3.9.1)
29
29
  diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.8.0)
31
- rspec-support (3.8.2)
30
+ rspec-support (~> 3.9.0)
31
+ rspec-support (3.9.3)
32
32
 
33
33
  PLATFORMS
34
34
  ruby
35
35
 
36
36
  DEPENDENCIES
37
- bundler (~> 1.16)
37
+ bundler (~> 2.1.4)
38
38
  movie_helper!
39
- nokogiri
40
- pry
41
- rake (~> 10.0)
39
+ nokogiri (~> 1.10, >= 1.10.4)
40
+ pry (~> 0.13.1)
41
+ rake (~> 13.0)
42
42
  rspec (~> 3.0)
43
43
 
44
44
  BUNDLED WITH
45
- 1.17.3
45
+ 2.1.4
data/Rakefile CHANGED
@@ -1,6 +1,11 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require "movie_helper"
3
4
 
4
5
  RSpec::Core::RakeTask.new(:spec)
5
6
 
6
7
  task :default => :spec
8
+
9
+ task :console do
10
+ Pry.start
11
+ end
@@ -17,9 +17,10 @@ class MovieHelper::CLI
17
17
  puts ""
18
18
  puts "Please select an option below:"
19
19
  puts "1. Random"
20
- puts "2. Best Films"
21
- puts "3. Latest Suggestions"
22
- puts "4. Exit"
20
+ puts "2. Latest on Netflix"
21
+ puts "3. Latest on Amazon"
22
+ puts "4. Latest Elsewhere"
23
+ puts "5. Exit"
23
24
  selector
24
25
  end
25
26
 
@@ -29,10 +30,12 @@ class MovieHelper::CLI
29
30
  when "1"
30
31
  random
31
32
  when "2"
32
- best_films
33
+ latest_netflix
33
34
  when "3"
34
- latest_suggestions
35
- when "4" || "exit" || "quit"
35
+ latest_amazon
36
+ when "4"
37
+ latest_elsewhere
38
+ when "5" || "exit" || "quit"
36
39
  else
37
40
  puts "Invalid request."
38
41
  puts ""
@@ -52,22 +55,50 @@ class MovieHelper::CLI
52
55
  more_info(movie)
53
56
  end
54
57
 
55
- def best_films
58
+ def latest_netflix
59
+ if MovieHelper::Movie.latest_netflix.empty?
60
+ puts "Loading..."
61
+ latest_netflix_films = MovieHelper::Scraper.latest_netflix
62
+ MovieHelper::Movie.create_from_list(latest_netflix_films)
63
+ puts ""
64
+ end
65
+ puts "Here are our latest Netflix films:"
66
+ movies = MovieHelper::Movie.latest_netflix
67
+ movies.each.with_index do |movie, i|
68
+ puts "#{i+1}. #{movie.title}"
69
+ end
70
+ information(movies)
71
+ end
56
72
 
57
- if MovieHelper::Movie.best_films.empty?
73
+ def latest_amazon
74
+ if MovieHelper::Movie.latest_amazon.empty?
58
75
  puts "Loading..."
59
- best_films = MovieHelper::Scraper.best_films
60
- MovieHelper::Movie.create_from_list(best_films)
76
+ latest_amazon_films = MovieHelper::Scraper.latest_amazon
77
+ MovieHelper::Movie.create_from_list(latest_amazon_films)
61
78
  puts ""
62
79
  end
63
- puts "Here is a list of our best films:"
64
- movies = MovieHelper::Movie.best_films
80
+ puts "Here are our latest Amazon films:"
81
+ movies = MovieHelper::Movie.latest_amazon
65
82
  movies.each.with_index do |movie, i|
66
83
  puts "#{i+1}. #{movie.title}"
67
84
  end
68
85
  information(movies)
69
86
  end
70
87
 
88
+ def latest_elsewhere
89
+ if MovieHelper::Movie.latest_elsewhere.empty?
90
+ puts "Loading..."
91
+ latest_elsewhere_films = MovieHelper::Scraper.latest_elsewhere
92
+ MovieHelper::Movie.create_from_list(latest_elsewhere_films)
93
+ puts ""
94
+ end
95
+ puts "Here are our latest films:"
96
+ movies = MovieHelper::Movie.latest_elsewhere
97
+ movies.each.with_index do |movie, i|
98
+ puts "#{i+1}. #{movie.title}"
99
+ end
100
+ information(movies)
101
+ end
71
102
 
72
103
  def information(movies)
73
104
  puts ""
@@ -85,20 +116,7 @@ class MovieHelper::CLI
85
116
  end
86
117
  end
87
118
 
88
- def latest_suggestions
89
- if MovieHelper::Movie.latest.empty?
90
- puts "Loading..."
91
- latest_films = MovieHelper::Scraper.latest
92
- MovieHelper::Movie.create_from_list(latest_films)
93
- puts ""
94
- end
95
- puts "Here are some of our latest suggestions:"
96
- movies = MovieHelper::Movie.latest
97
- movies.each.with_index do |movie, i|
98
- puts "#{i+1}. #{movie.title}"
99
- end
100
- information(movies)
101
- end
119
+
102
120
 
103
121
  def more_info(movie)
104
122
  puts "Would you like more information about this movie?"
@@ -115,12 +133,11 @@ class MovieHelper::CLI
115
133
 
116
134
  def display(movie)
117
135
  puts "Title: #{movie.title} (#{movie.year})"
118
- puts "Watch with #{movie.watch_with}"
119
- puts "Watch when #{movie.watch_when}"
136
+ puts "Summary: #{movie.summary}"
120
137
  puts "Genre: #{movie.genre}"
121
- puts "Selected review: #{movie.review}"
122
- puts "Movie stars: #{movie.stars}"
123
- puts "Movie rating: #{movie.rating}"
138
+ puts "Mood: #{movie.mood}"
139
+ puts "Movie actors: #{movie.actors}"
140
+ puts "Movie director: #{movie.director}"
124
141
  puts "Language: #{movie.language}"
125
142
  end
126
143
 
@@ -1,5 +1,5 @@
1
1
  class MovieHelper::Movie
2
- attr_accessor :title, :year, :watch_with, :watch_when, :genre, :review, :stars, :rating, :language, :url, :is_latest, :is_best
2
+ attr_accessor :title, :year, :summary, :genre, :mood, :actors, :director, :language, :language, :url, :is_netflix, :is_amazon, :is_elsewhere
3
3
 
4
4
  @@all = []
5
5
 
@@ -18,12 +18,16 @@ class MovieHelper::Movie
18
18
  @@all
19
19
  end
20
20
 
21
- def self.best_films
22
- @@all.select {|movie| movie.is_best == true}
21
+ def self.latest_netflix
22
+ @@all.select {|movie| movie.is_netflix == true}
23
23
  end
24
24
 
25
- def self.latest
26
- @@all.select {|movie| movie.is_latest == true}
25
+ def self.latest_amazon
26
+ @@all.select {|movie| movie.is_amazon == true}
27
+ end
28
+
29
+ def self.latest_elsewhere
30
+ @@all.select {|movie| movie.is_elsewhere == true}
27
31
  end
28
32
 
29
33
 
@@ -4,25 +4,25 @@ class MovieHelper::Scraper
4
4
  doc = Nokogiri::HTML(open(link))
5
5
 
6
6
  hash = {}
7
-
8
- hash[:title] = doc.css("h1").children.first.text.strip
9
- if doc.css("h1 span.movieyear").first != nil
10
- hash[:year] = doc.css("h1 span.movieyear").first.text
11
- end
12
- hash[:watch_with] = doc.css("span[title='More movies to watch with']").children.text.strip
13
- hash[:watch_when] = doc.css("span[title='More movies to watch when']").children.text.strip
7
+
8
+ hash[:title] = doc.css("span.content-title").children.text.strip
9
+ hash[:year] = doc.css("span.single-year").children.text.strip
10
+ hash[:summary] = doc.css("div.wc-comment-text").children.text.strip
14
11
  hash[:genre] = doc.css("span[itemprop='genre']").children.text.strip
15
- hash[:review] = doc.css(".review-block span p").text
16
- hash[:stars] = doc.css("#agmtw-opened li.meta-item div.infom span").first.children.text
17
- #e.g. for individual actor/actress: doc.css("#agmtw-opened li.meta-item div.infom span").first.children.first.attributes.first.last.value
18
- hash[:rating] = doc.css("span[itemprop='contentRating']").children.text.strip
19
- hash[:language] = doc.css("span[title='More from the language']").children.text.strip
12
+ if doc.css("div.infom span").count > 1
13
+ hash[:mood] = doc.css("div.infom span")[1].text.strip
14
+ hash[:actors] = doc.css("div.infom span")[2].text.strip
15
+ hash[:director] = doc.css("div.infom span")[3].text.strip
16
+ hash[:language] = doc.css("div.infom span")[4].text.strip
17
+ end
20
18
  hash[:url] = link
21
19
 
22
- if category == "best"
23
- hash[:is_best] = true
24
- elsif category == "latest"
25
- hash[:is_latest] = true
20
+ if category == "netflix"
21
+ hash[:is_netflix] = true
22
+ elsif category == "amazon"
23
+ hash[:is_amazon] = true
24
+ elsif category == "elsewhere"
25
+ hash[:is_elsewhere] = true
26
26
  end
27
27
 
28
28
  hash
@@ -32,23 +32,22 @@ class MovieHelper::Scraper
32
32
  scrape_movie("https://agoodmovietowatch.com/random/", nil)
33
33
  end
34
34
 
35
- def self.best_films
36
- doc = Nokogiri::HTML(open("https://agoodmovietowatch.com/best/"))
37
- links = doc.css("h3").map {|movie| movie.elements.first.first.last}
38
- best = links.map {|movie_link| scrape_movie(movie_link, "best")}
35
+ def self.latest_netflix
36
+ doc = Nokogiri::HTML(open("https://agoodmovietowatch.com/all/?on=USA-netflix&by=new"))
37
+ links = doc.css("span.content-title").map {|movie| movie.css("a").first.first.last}
38
+ best = links.map {|movie_link| scrape_movie(movie_link, "netflix")}
39
39
  end
40
40
 
41
- def self.latest
42
- doc = Nokogiri::HTML(open("https://agoodmovietowatch.com/all/new/"))
43
- links = doc.css(".entry-title").map do |movie|
44
- if movie.elements.first == nil
45
- nil
46
- else
47
- movie.elements.first.first.last
48
- end
49
- end
50
- links.delete(nil)
51
- latest = links.map {|movie_link| scrape_movie(movie_link, "latest")}
41
+ def self.latest_amazon
42
+ doc = Nokogiri::HTML(open("https://agoodmovietowatch.com/all/?on=USA-amazon-prime&by=new"))
43
+ links = doc.css("span.content-title").map {|movie| movie.css("a").first.first.last}
44
+ best = links.map {|movie_link| scrape_movie(movie_link, "amazon")}
45
+ end
46
+
47
+ def self.latest_elsewhere
48
+ doc = Nokogiri::HTML(open("https://agoodmovietowatch.com/all/?by=new"))
49
+ links = doc.css("span.content-title").map {|movie| movie.css("a").first.first.last}
50
+ best = links.map {|movie_link| scrape_movie(movie_link, "elsewhere")}
52
51
  end
53
52
 
54
53
 
@@ -1,4 +1,4 @@
1
1
  module MovieHelper
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
4
4
 
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.16"
27
- spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "bundler", "~> 2.1.4"
27
+ spec.add_development_dependency "rake", "~> 13.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
- spec.add_development_dependency "nokogiri"
30
- spec.add_development_dependency "pry"
29
+ spec.add_development_dependency 'nokogiri', '~> 1.10', '>= 1.10.4'
30
+ spec.add_development_dependency "pry", '~> 0.13.1'
31
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: movie_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dlyons8
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2020-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.1.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: 2.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,30 +56,36 @@ dependencies:
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.10'
59
62
  - - ">="
60
63
  - !ruby/object:Gem::Version
61
- version: '0'
64
+ version: 1.10.4
62
65
  type: :development
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
65
68
  requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.10'
66
72
  - - ">="
67
73
  - !ruby/object:Gem::Version
68
- version: '0'
74
+ version: 1.10.4
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: pry
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
- - - ">="
79
+ - - "~>"
74
80
  - !ruby/object:Gem::Version
75
- version: '0'
81
+ version: 0.13.1
76
82
  type: :development
77
83
  prerelease: false
78
84
  version_requirements: !ruby/object:Gem::Requirement
79
85
  requirements:
80
- - - ">="
86
+ - - "~>"
81
87
  - !ruby/object:Gem::Version
82
- version: '0'
88
+ version: 0.13.1
83
89
  description: This application scrapes data off of the website, https://agoodmovietowatch.com/,
84
90
  and uses it to feed a CLI app that helps you to find a movie to watch.
85
91
  email:
@@ -127,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
133
  - !ruby/object:Gem::Version
128
134
  version: '0'
129
135
  requirements: []
130
- rubygems_version: 3.0.2
136
+ rubygems_version: 3.1.4
131
137
  signing_key:
132
138
  specification_version: 4
133
139
  summary: Scrapes data off of website to help you find a movie to watch.