movie_helper 0.1.0 → 0.2.0

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.
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.