market_bot 0.13.0 → 0.14.0
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/Gemfile.lock +1 -1
- data/README.markdown +13 -12
- data/lib/market_bot.rb +1 -0
- data/lib/market_bot/android/app.rb +11 -5
- data/lib/market_bot/exceptions.rb +4 -0
- data/lib/market_bot/version.rb +1 -1
- data/spec/market_bot/android/app_spec.rb +15 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2993089a057ffbcdbed68f9765c677a92136e1a
|
4
|
+
data.tar.gz: 7951dd169f17d3a9d1ffdd2a924be6dd2c3a1288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee503d79c22db7b5f41870033863c366367ac8d66ee87d71b73f0107fc187be7e952de7ca11a9ea94deaffab2ed4607fd8c3d8bca5318f8a4015aa46965b7d54
|
7
|
+
data.tar.gz: 5c5e7a1311c467034dfc4a88e39af38a6ac193bb1bc8fb90cebef296b2ce14132910c1acd650c6249e9e7f797ec2ac6943b67c7255fb7813b7b780f4895e8825
|
data/Gemfile.lock
CHANGED
data/README.markdown
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# Market Bot - Ruby scraper for Google Play (Android Market)
|
2
2
|
|
3
3
|
Market Bot is a high performance Ruby scraper for Google's Android Market with a simple to use API.
|
4
|
-
Currently it
|
5
|
-
Books, music, movies, etc aren't currently supported.
|
4
|
+
Currently it can: scrape apps, app leaderboards, movies, and tv shows. It can also search for apps.
|
6
5
|
It is built on top of Nokogiri and Typhoeus.
|
7
|
-
Used in production to power [www.droidmeter.com](http://www.droidmeter.com/?t=github).
|
8
6
|
|
9
7
|
**This project is currently seeking developers to help maintain it.
|
10
|
-
Please send pull requests or contact me if you are able to help out
|
8
|
+
Please send pull requests or contact me if you are able to help out.
|
9
|
+
The best ways to get started are to fix bugs, improve documentation,
|
10
|
+
and merge useful changes from public forks. By working together we
|
11
|
+
can make the best scraper for the Google Play Store!**
|
11
12
|
|
12
13
|
## Dependencies
|
13
14
|
|
@@ -17,25 +18,25 @@ Please send pull requests or contact me if you are able to help out.**
|
|
17
18
|
## Installation
|
18
19
|
|
19
20
|
gem install market_bot
|
20
|
-
|
21
|
+
|
21
22
|
## Getting Started Example
|
22
23
|
|
23
24
|
require 'rubygems'
|
24
25
|
require 'market_bot'
|
25
|
-
|
26
|
+
|
26
27
|
# Download all the data for the Facebook app.
|
27
28
|
app = MarketBot::Android::App.new('com.facebook.katana')
|
28
29
|
app.update
|
29
|
-
|
30
|
+
|
30
31
|
# Here we will print out the title of the app.
|
31
32
|
puts app.title
|
32
|
-
|
33
|
+
|
33
34
|
# Here we will print out the rating of the app.
|
34
35
|
puts app.rating
|
35
|
-
|
36
|
+
|
36
37
|
# And the price...
|
37
38
|
puts app.price
|
38
|
-
|
39
|
+
|
39
40
|
# market_bot has many other attributes for each app.
|
40
41
|
# You can see what attributes are available in your version of
|
41
42
|
# market_bot by printing a simple constant included in the gem.
|
@@ -67,7 +68,7 @@ Please send pull requests or contact me if you are able to help out.**
|
|
67
68
|
developer = MarketBot::Android::Developer.new('Zynga')
|
68
69
|
developer.update
|
69
70
|
puts "Results found: #{developer.results.count}"
|
70
|
-
|
71
|
+
|
71
72
|
# Print the rating for an app.
|
72
73
|
puts MarketBot::Android::App.new('com.king.candycrushsaga').update.rating
|
73
74
|
|
@@ -125,6 +126,6 @@ Please contact me if you are looking for commercial data solutions.
|
|
125
126
|
|
126
127
|
## Copyright
|
127
128
|
|
128
|
-
Copyright (c) 2011 -
|
129
|
+
Copyright (c) 2011 - 2015 Chad Remesch. See LICENSE.txt for
|
129
130
|
further details.
|
130
131
|
|
data/lib/market_bot.rb
CHANGED
@@ -153,7 +153,7 @@ module MarketBot
|
|
153
153
|
|
154
154
|
def update
|
155
155
|
resp = Typhoeus::Request.get(market_url, @request_opts)
|
156
|
-
result =
|
156
|
+
result = handle_response(resp)
|
157
157
|
update_callback(result)
|
158
158
|
|
159
159
|
self
|
@@ -166,13 +166,10 @@ module MarketBot
|
|
166
166
|
request = Typhoeus::Request.new(market_url, @request_opts)
|
167
167
|
|
168
168
|
request.on_complete do |response|
|
169
|
-
# HACK: Typhoeus <= 0.4.2 returns a response, 0.5.0pre returns the request.
|
170
|
-
response = response.response if response.is_a?(Typhoeus::Request)
|
171
|
-
|
172
169
|
result = nil
|
173
170
|
|
174
171
|
begin
|
175
|
-
result =
|
172
|
+
result = handle_response(response)
|
176
173
|
rescue Exception => e
|
177
174
|
@error = e
|
178
175
|
end
|
@@ -186,6 +183,15 @@ module MarketBot
|
|
186
183
|
end
|
187
184
|
|
188
185
|
private
|
186
|
+
|
187
|
+
def handle_response(response)
|
188
|
+
if response.success?
|
189
|
+
App.parse(response.body)
|
190
|
+
else
|
191
|
+
raise MarketBot::ResponseError.new("Got unexpected response code: #{response.code}")
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
189
195
|
def update_callback(result)
|
190
196
|
unless @error
|
191
197
|
MARKET_ATTRIBUTES.each do |a|
|
data/lib/market_bot/version.rb
CHANGED
@@ -179,6 +179,21 @@ describe 'App' do
|
|
179
179
|
check_getters(app)
|
180
180
|
end
|
181
181
|
|
182
|
+
context "Quick API not found" do
|
183
|
+
let(:app) { App.new(test_id) }
|
184
|
+
|
185
|
+
before do
|
186
|
+
response = Typhoeus::Response.new(:code => 404)
|
187
|
+
Typhoeus.stub(app.market_url).and_return(response)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "raises a ResponseError" do
|
191
|
+
expect {
|
192
|
+
app.update
|
193
|
+
}.to raise_error(MarketBot::ResponseError)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
182
197
|
context 'Batch API' do
|
183
198
|
hydra = Typhoeus::Hydra.new
|
184
199
|
app = App.new(test_id, :hydra => hydra)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: market_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Remesch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/market_bot/android/leaderboard.rb
|
75
75
|
- lib/market_bot/android/leaderboard/constants.rb
|
76
76
|
- lib/market_bot/android/search_query.rb
|
77
|
+
- lib/market_bot/exceptions.rb
|
77
78
|
- lib/market_bot/movie/leaderboard.rb
|
78
79
|
- lib/market_bot/movie/leaderboard/constants.rb
|
79
80
|
- lib/market_bot/movie/search_query.rb
|
@@ -115,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
116
|
version: '0'
|
116
117
|
requirements: []
|
117
118
|
rubyforge_project:
|
118
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.4.5
|
119
120
|
signing_key:
|
120
121
|
specification_version: 4
|
121
122
|
summary: 'Market Bot: High performance Ruby scraper for Google''s Android Market'
|