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.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/README.markdown +11 -0
  3. data/bin/update_test_data +8 -0
  4. data/lib/market_bot/play/chart.rb +1 -2
  5. data/lib/market_bot/version.rb +1 -1
  6. data/spec/market_bot/play/chart_spec.rb +19 -1
  7. data/spec/market_bot/play/data/app-com.bluefroggaming.popdat.txt +6 -6
  8. data/spec/market_bot/play/data/app-com.mg.android.txt +7 -9
  9. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-0.txt +97 -0
  10. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-1.txt +97 -0
  11. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-2.txt +97 -0
  12. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-3.txt +97 -0
  13. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-4.txt +97 -0
  14. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-5.txt +97 -0
  15. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-6.txt +97 -0
  16. data/spec/market_bot/play/data/chart-jp-ja-topselling_paid-BUSINESS-7.txt +97 -0
  17. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-0.txt +4 -4
  18. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-1.txt +4 -4
  19. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-2.txt +4 -4
  20. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-3.txt +4 -4
  21. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-4.txt +4 -4
  22. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-5.txt +4 -4
  23. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-6.txt +4 -4
  24. data/spec/market_bot/play/data/chart-topselling_paid-GAME_ARCADE-7.txt +4 -4
  25. data/spec/market_bot/play/data/developer-zynga.txt +4 -4
  26. metadata +18 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c83dbfadb93fa85c5ede8b45b140a3f4b09ded5e
4
- data.tar.gz: 676c9b8cdf05722cd0ed0c805337f60c0096e23e
3
+ metadata.gz: 0a0d2df9b040eabb75347edb1e63fc190f68abca
4
+ data.tar.gz: 0d7b111c9f482c88bb5f12c6354f519dac3cc1a9
5
5
  SHA512:
6
- metadata.gz: eb1260aca2f4d51f73803e6a4b86c58878f7c939bf6b036fbb9f8fda537f37cec12f1e0a0f6d64b1b320ac2de84d309c71a4c7d288b892330a5bee3541b204ba
7
- data.tar.gz: 5ea0d5a46d4ca159e457cab091e441acf536e75da7a8fbea67a1d5ed7584986a7ddcc130759b4c2b03a61d831d9a7886d9b8b57eece27f13c07e5df46ea3b8ac
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
@@ -1,3 +1,3 @@
1
1
  module MarketBot
2
- VERSION = '1.0.4'
2
+ VERSION = '1.0.5'
3
3
  end
@@ -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'