steamdeals-cli-gem 0.1.2 → 0.1.3
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 +4 -4
- data/lib/steam_deals/cli.rb +61 -22
- data/lib/steam_deals/deal.rb +24 -11
- data/lib/steam_deals/version.rb +1 -1
- metadata +38 -23
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 92aa53e4a63e983857f1a692fe0105d1cf99da31
|
|
4
|
+
data.tar.gz: 7d8c5af0a1edff6f04cf93663462a9500af9c6ba
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fa8a014cd3b515946693ee7967c7158a510184a441bd05347ddc8ed0d1cda8f09c0d659b9b82094a94c630a4056c4262eba8432ca25fc570b101c149302e3e8b
|
|
7
|
+
data.tar.gz: 244312e5d7066dd6a8821bc7f9ebf62f56bccbc8c37937c63e96adeb21c8b016f8cb7020ce9e9cbb74ffc7a9412bbbb5e4046dae03ea9064ff1d6020417a3d6e
|
data/lib/steam_deals/cli.rb
CHANGED
|
@@ -1,42 +1,62 @@
|
|
|
1
|
-
require 'pry'
|
|
2
1
|
class SteamDeals::CLI
|
|
3
2
|
|
|
4
3
|
def start
|
|
5
4
|
input = ""
|
|
6
5
|
while input != "exit"
|
|
7
|
-
puts "
|
|
8
|
-
puts "
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if input.downcase == "exit"
|
|
6
|
+
puts "\nWhich Sale would you like to see?"
|
|
7
|
+
puts "---------------------------------"
|
|
8
|
+
puts "1. Daily Deals\n"
|
|
9
|
+
puts "2. Weeklong Deals"
|
|
10
|
+
puts "(Or type 'exit' to end program)\n"
|
|
11
|
+
input = gets.strip.downcase
|
|
12
|
+
case input
|
|
13
|
+
when "1"
|
|
14
|
+
display_daily_deals
|
|
15
|
+
when "2"
|
|
16
|
+
display_weeklong_deals
|
|
17
|
+
when "exit"
|
|
20
18
|
puts "\nGoodbye!"
|
|
21
|
-
elsif input.to_i > 0 && game = SteamDeals::Deal.app_at(input.to_i)
|
|
22
|
-
display_details(game)
|
|
23
19
|
else
|
|
24
|
-
puts "\nInvalid input
|
|
20
|
+
puts "\nInvalid input, try again!\n"
|
|
25
21
|
end
|
|
26
22
|
end
|
|
27
23
|
end
|
|
28
24
|
|
|
25
|
+
def display_daily_deals
|
|
26
|
+
puts "\nNow retreiving Daily Deals. Please be patient\n"
|
|
27
|
+
puts "\nHere are the apps listed for today's Steam Daily Deals"
|
|
28
|
+
puts "-------------------------------------------------------"
|
|
29
|
+
SteamDeals::Deal.scrape_daily_deals
|
|
30
|
+
SteamDeals::Deal.all.each.with_index(1) do |app, index|
|
|
31
|
+
puts "#{index}. #{app.name}"
|
|
32
|
+
end
|
|
33
|
+
puts " "
|
|
34
|
+
show_game_list
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def display_weeklong_deals
|
|
38
|
+
puts "\nNow retreiving Weeklong Deals. Please be patient\n"
|
|
39
|
+
SteamDeals::Deal.scrape_weeklong_deals
|
|
40
|
+
puts "Here are the apps listed for today's Steam Weeklong Deals"
|
|
41
|
+
puts "-------------------------------------------------------"
|
|
42
|
+
SteamDeals::Deal.all.each.with_index(1) do |app,index|
|
|
43
|
+
puts "#{index}. #{app.name}"
|
|
44
|
+
end
|
|
45
|
+
puts " "
|
|
46
|
+
show_game_list
|
|
47
|
+
end
|
|
48
|
+
|
|
29
49
|
def display_details(game)
|
|
30
50
|
input = ""
|
|
31
|
-
while input
|
|
51
|
+
while input != "exit"
|
|
32
52
|
puts ""
|
|
33
|
-
puts "What details would you like to see? (Enter number choice or type exit to return to previous menu"
|
|
53
|
+
puts "What details would you like to see? (Enter number choice or type exit to return to previous menu)"
|
|
34
54
|
puts ""
|
|
35
55
|
puts "1. Sale Details"
|
|
36
56
|
puts "2. Game Details"
|
|
37
57
|
puts ""
|
|
38
58
|
|
|
39
|
-
input = gets.chomp
|
|
59
|
+
input = gets.chomp.downcase
|
|
40
60
|
case input
|
|
41
61
|
when "1"
|
|
42
62
|
show_sale_details(game)
|
|
@@ -52,7 +72,7 @@ class SteamDeals::CLI
|
|
|
52
72
|
end
|
|
53
73
|
|
|
54
74
|
def show_sale_details(game)
|
|
55
|
-
puts ""
|
|
75
|
+
puts "Loading sale details...\n\n"
|
|
56
76
|
puts "Here are the sale details"
|
|
57
77
|
puts "-------------------------"
|
|
58
78
|
puts "Name : #{game.name}"
|
|
@@ -63,7 +83,8 @@ class SteamDeals::CLI
|
|
|
63
83
|
end
|
|
64
84
|
|
|
65
85
|
def show_app_details(game)
|
|
66
|
-
puts ""
|
|
86
|
+
puts "Loading Game Details...\n\n"
|
|
87
|
+
game.scrape_add_details
|
|
67
88
|
puts "Here are the app details"
|
|
68
89
|
puts "------------------------"
|
|
69
90
|
puts "Name : #{game.name}"
|
|
@@ -78,4 +99,22 @@ class SteamDeals::CLI
|
|
|
78
99
|
puts "---------------------------------------------------"
|
|
79
100
|
puts ""
|
|
80
101
|
end
|
|
102
|
+
|
|
103
|
+
def show_game_list
|
|
104
|
+
input = ""
|
|
105
|
+
while input != "exit"
|
|
106
|
+
puts "Which game would you like to see in detail? (Enter the number associtaed with game on list)"
|
|
107
|
+
puts "or you can enter 'exit' to return to previous menu"
|
|
108
|
+
input = gets.chomp.downcase
|
|
109
|
+
|
|
110
|
+
if input.downcase == "exit"
|
|
111
|
+
puts "\nReturning to previous menu\n"
|
|
112
|
+
elsif input.to_i > 0 && game = SteamDeals::Deal.app_at(input.to_i)
|
|
113
|
+
display_details(game)
|
|
114
|
+
else
|
|
115
|
+
puts "\nInvalid input. Try again.\n"
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
81
120
|
end
|
data/lib/steam_deals/deal.rb
CHANGED
|
@@ -13,22 +13,22 @@ class SteamDeals::Deal
|
|
|
13
13
|
@publisher = "N/A"
|
|
14
14
|
@supported_os = "N/A"
|
|
15
15
|
@app_desc = "N/A"
|
|
16
|
-
scrape_add_details
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
def self.
|
|
18
|
+
def self.scrape_weeklong_deals
|
|
19
|
+
@@all.clear
|
|
20
|
+
doc = Nokogiri::HTML(open("https://steamdb.info/sales/"))
|
|
21
|
+
app_list = doc.css("#sales-section-weeklong-deals .table-sales .appimg")
|
|
22
|
+
scrape_initial_details(app_list)
|
|
23
|
+
self.all
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def self.scrape_daily_deals
|
|
20
28
|
@@all.clear
|
|
21
29
|
doc = Nokogiri::HTML(open("https://steamdb.info/sales/"))
|
|
22
30
|
app_list = doc.css("#sales-section-daily-deal .table-sales .appimg")
|
|
23
|
-
app_list
|
|
24
|
-
app_name = app.css("a.b")[0].text
|
|
25
|
-
app_url ="https://steamdb.info/#{app.css("a.b")[0]["href"]}"
|
|
26
|
-
discount = app.css(".price-discount i").text
|
|
27
|
-
discount = app.css(".price-discount-minor i").text if discount.empty?
|
|
28
|
-
price = "#{app.css("td")[4].text}"
|
|
29
|
-
game = SteamDeals::Deal.new(app_name,app_url,discount,price)
|
|
30
|
-
@@all << game
|
|
31
|
-
end
|
|
31
|
+
scrape_initial_details(app_list)
|
|
32
32
|
self.all
|
|
33
33
|
end
|
|
34
34
|
|
|
@@ -40,6 +40,19 @@ class SteamDeals::Deal
|
|
|
40
40
|
@@all[num-1]
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
|
|
44
|
+
def self.scrape_initial_details(app_list)
|
|
45
|
+
app_list.each do |app|
|
|
46
|
+
app_name = app.css("a.b")[0].text
|
|
47
|
+
app_url ="https://steamdb.info/#{app.css("a.b")[0]["href"]}"
|
|
48
|
+
discount = app.css(".price-discount i").text
|
|
49
|
+
discount = app.css(".price-discount-minor i").text if discount.empty?
|
|
50
|
+
price = "#{app.css("td")[4].text}"
|
|
51
|
+
game = SteamDeals::Deal.new(app_name,app_url,discount,price)
|
|
52
|
+
@@all << game
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
43
56
|
def scrape_add_details
|
|
44
57
|
doc = Nokogiri::HTML(open(@details_url))
|
|
45
58
|
@app_desc = doc.css(".span4 p.header-description").text
|
data/lib/steam_deals/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: steamdeals-cli-gem
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Thomas
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-09-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -17,6 +17,9 @@ dependencies:
|
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
19
|
version: '1.10'
|
|
20
|
+
- - ">="
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '1.10'
|
|
20
23
|
type: :development
|
|
21
24
|
prerelease: false
|
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -24,6 +27,9 @@ dependencies:
|
|
|
24
27
|
- - "~>"
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
26
29
|
version: '1.10'
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.10'
|
|
27
33
|
- !ruby/object:Gem::Dependency
|
|
28
34
|
name: rake
|
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -31,6 +37,9 @@ dependencies:
|
|
|
31
37
|
- - "~>"
|
|
32
38
|
- !ruby/object:Gem::Version
|
|
33
39
|
version: '10.0'
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '10.0'
|
|
34
43
|
type: :development
|
|
35
44
|
prerelease: false
|
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -38,62 +47,69 @@ dependencies:
|
|
|
38
47
|
- - "~>"
|
|
39
48
|
- !ruby/object:Gem::Version
|
|
40
49
|
version: '10.0'
|
|
50
|
+
- - ">="
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '10.0'
|
|
41
53
|
- !ruby/object:Gem::Dependency
|
|
42
54
|
name: rspec
|
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
|
44
56
|
requirements:
|
|
57
|
+
- - "~>"
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: 3.4.0
|
|
45
60
|
- - ">="
|
|
46
61
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
62
|
+
version: 3.4.0
|
|
48
63
|
type: :development
|
|
49
64
|
prerelease: false
|
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
66
|
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: 3.4.0
|
|
52
70
|
- - ">="
|
|
53
71
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
72
|
+
version: 3.4.0
|
|
55
73
|
- !ruby/object:Gem::Dependency
|
|
56
74
|
name: nokogiri
|
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
|
58
76
|
requirements:
|
|
77
|
+
- - "~>"
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: 1.6.8
|
|
59
80
|
- - ">="
|
|
60
81
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
82
|
+
version: 1.6.8
|
|
62
83
|
type: :development
|
|
63
84
|
prerelease: false
|
|
64
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
86
|
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 1.6.8
|
|
66
90
|
- - ">="
|
|
67
91
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
92
|
+
version: 1.6.8
|
|
69
93
|
- !ruby/object:Gem::Dependency
|
|
70
94
|
name: pry
|
|
71
95
|
requirement: !ruby/object:Gem::Requirement
|
|
72
96
|
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
|
-
- - ">="
|
|
97
|
+
- - "~>"
|
|
81
98
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: open-uri
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
99
|
+
version: 0.10.3
|
|
87
100
|
- - ">="
|
|
88
101
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
102
|
+
version: 0.10.3
|
|
90
103
|
type: :development
|
|
91
104
|
prerelease: false
|
|
92
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
106
|
requirements:
|
|
107
|
+
- - "~>"
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: 0.10.3
|
|
94
110
|
- - ">="
|
|
95
111
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
112
|
+
version: 0.10.3
|
|
97
113
|
description: Scrape steamdb.info for daily steam deals, provides name, sale price,
|
|
98
114
|
sale discount, and minor descriptions
|
|
99
115
|
email:
|
|
@@ -132,6 +148,5 @@ rubyforge_project:
|
|
|
132
148
|
rubygems_version: 2.4.5.1
|
|
133
149
|
signing_key:
|
|
134
150
|
specification_version: 4
|
|
135
|
-
summary:
|
|
136
|
-
discount, and minor descriptions
|
|
151
|
+
summary: Scrapes steamdb.info for daily and weeklong deals
|
|
137
152
|
test_files: []
|