market_bot 1.0.4 → 1.0.5
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/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'
|