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