market_bot 1.0.4 → 1.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.markdown +11 -0
- data/bin/update_test_data +8 -0
- data/lib/market_bot/play/chart.rb +1 -2
- data/lib/market_bot/version.rb +1 -1
- data/spec/market_bot/play/chart_spec.rb +19 -1
- data/spec/market_bot/play/data/app-com.bluefroggaming.popdat.txt +6 -6
- data/spec/market_bot/play/data/app-com.mg.android.txt +7 -9
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-0.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-1.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-2.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-3.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-4.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-5.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-6.txt +97 -0
- data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-7.txt +97 -0
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-0.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-1.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-2.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-3.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-4.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-5.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-6.txt +4 -4
- data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-7.txt +4 -4
- data/spec/market_bot/play/data/developer-zynga.txt +4 -4
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a0d2df9b040eabb75347edb1e63fc190f68abca
|
4
|
+
data.tar.gz: 0d7b111c9f482c88bb5f12c6354f519dac3cc1a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb2f09ebeb03eac46c773d6616e00d88a401d9f0ea1db07feb99f49de52b6f23181603b6f9ed072a6cba304c971944d8b4c0eb7d4b223f302513f4547e3c0355
|
7
|
+
data.tar.gz: 4a43b5f522f3754e06e8d563cd7d009c0647b758652fc500af5014c769a8c3d2fb370d10135a221b240d88374d2a4b0db483608b0fa8ce5d76972c41b4aadbc2
|
data/README.markdown
CHANGED
@@ -60,6 +60,17 @@ Charts are defined by a collection and an option category.
|
|
60
60
|
# Print the first app.
|
61
61
|
puts dev.result.first.inspect
|
62
62
|
|
63
|
+
## Language and Country support
|
64
|
+
|
65
|
+
Market Bot defaults to USA and English.
|
66
|
+
You can specify a country and a language to override the defaults when creating objects:
|
67
|
+
|
68
|
+
chart = MarketBot::Play::Chart.new('topselling_paid', 'BUSINESS', country: 'jp', lang: 'ja')
|
69
|
+
chart.update
|
70
|
+
|
71
|
+
app = MarketBot::Play::App.new('com.facebook.katana', country: 'jp', lang: 'ja')
|
72
|
+
app.update
|
73
|
+
|
63
74
|
## Excessive Use
|
64
75
|
|
65
76
|
Google will block your IP address if you attempt to scrape large quantities of data.
|
data/bin/update_test_data
CHANGED
@@ -27,4 +27,12 @@ download('https://play.google.com/store/apps/category/GAME_ARCADE/collection/top
|
|
27
27
|
download('https://play.google.com/store/apps/category/GAME_ARCADE/collection/topselling_paid?start=500&gl=us&num=100&hl=en', 'chart-topselling_paid-GAME_ARCADE-5.txt')
|
28
28
|
download('https://play.google.com/store/apps/category/GAME_ARCADE/collection/topselling_paid?start=600&gl=us&num=100&hl=en', 'chart-topselling_paid-GAME_ARCADE-6.txt')
|
29
29
|
download('https://play.google.com/store/apps/category/GAME_ARCADE/collection/topselling_paid?start=700&gl=us&num=100&hl=en', 'chart-topselling_paid-GAME_ARCADE-7.txt')
|
30
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=0&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-0.txt')
|
31
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=100&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-1.txt')
|
32
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=200&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-2.txt')
|
33
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=300&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-3.txt')
|
34
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=400&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-4.txt')
|
35
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=500&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-5.txt')
|
36
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=600&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-6.txt')
|
37
|
+
download('https://play.google.com/store/apps/category/BUSINESS/collection/topselling_paid?start=700&gl=jp&num=100&hl=ja', 'chart-jp-ja-topselling_paid-BUSINESS-7.txt')
|
30
38
|
download('https://play.google.com/store/apps/developer?id=Zynga', 'developer-zynga.txt')
|
@@ -101,8 +101,7 @@ module MarketBot
|
|
101
101
|
if response.success?
|
102
102
|
r = self.class.parse(response.body, lang: @lang)
|
103
103
|
|
104
|
-
if @result.empty? ||
|
105
|
-
(!@result.empty? &&@result[-1][-1][:rank] + 1 == r[0][:rank])
|
104
|
+
if @result.empty? || (!@result.empty? && r[0] && @result[-1][-1][:rank] + 1 == r[0][:rank])
|
106
105
|
@result << r
|
107
106
|
return true
|
108
107
|
end
|
data/lib/market_bot/version.rb
CHANGED
@@ -89,7 +89,7 @@ describe MarketBot::Play::Chart do
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
-
it 'should update' do
|
92
|
+
it 'should update (default)' do
|
93
93
|
collection = 'topselling_paid'
|
94
94
|
category ='GAME_ARCADE'
|
95
95
|
chart = MarketBot::Play::Chart.new(collection, category, max_pages: 7)
|
@@ -107,6 +107,24 @@ describe MarketBot::Play::Chart do
|
|
107
107
|
expect(ranks).to eq((ranks[0]..ranks[-1]).to_a)
|
108
108
|
end
|
109
109
|
|
110
|
+
it 'should update (jp ja)' do
|
111
|
+
collection = 'topselling_paid'
|
112
|
+
category ='BUSINESSS'
|
113
|
+
chart = MarketBot::Play::Chart.new(collection, category, max_pages: 7, country: 'jp', lang: 'ja')
|
114
|
+
code = 200
|
115
|
+
|
116
|
+
chart.store_urls.each_with_index do |url, i|
|
117
|
+
html = read_play_data("chart-jp-ja-topselling_paid-BUSINESS-#{i}.txt")
|
118
|
+
response = Typhoeus::Response.new(code: code, headers: '', body: html)
|
119
|
+
Typhoeus.stub(url).and_return(response)
|
120
|
+
end
|
121
|
+
|
122
|
+
chart.update
|
123
|
+
|
124
|
+
ranks = chart.result.map { |e| e[:rank] }
|
125
|
+
expect(ranks).to eq((ranks[0]..ranks[-1]).to_a)
|
126
|
+
end
|
127
|
+
|
110
128
|
it 'should raise a ResponseError for unknown http codes' do
|
111
129
|
collection = 'topselling_paid'
|
112
130
|
category ='GAME_ARCADE'
|