market_bot 0.2.9 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -9,7 +9,7 @@ gem "nokogiri"
9
9
  # Add dependencies to develop your gem here.
10
10
  # Include everything needed to run rake, tests, features, etc.
11
11
  group :development do
12
- gem "rspec", "~> 2.3.0"
12
+ gem "rspec", "~> 2.8.0"
13
13
  gem "bundler", "~> 1.0.0"
14
14
  gem "jeweler", "~> 1.6.4"
15
15
  gem "rcov", ">= 0"
data/Gemfile.lock CHANGED
@@ -3,31 +3,31 @@ GEM
3
3
  specs:
4
4
  ZenTest (4.6.2)
5
5
  archive-tar-minitar (0.5.2)
6
- columnize (0.3.5)
6
+ columnize (0.3.6)
7
7
  diff-lcs (1.1.3)
8
8
  git (1.2.5)
9
9
  jeweler (1.6.4)
10
10
  bundler (~> 1.0)
11
11
  git (>= 1.2.5)
12
12
  rake
13
- json (1.6.3)
14
- linecache19 (0.5.12)
13
+ json (1.6.4)
14
+ linecache19 (0.5.13)
15
15
  ruby_core_source (>= 0.1.4)
16
16
  mime-types (1.17.2)
17
17
  nokogiri (1.5.0)
18
18
  rake (0.9.2.2)
19
19
  rcov (0.9.11)
20
- rdoc (3.11)
20
+ rdoc (3.12)
21
21
  json (~> 1.4)
22
- rspec (2.3.0)
23
- rspec-core (~> 2.3.0)
24
- rspec-expectations (~> 2.3.0)
25
- rspec-mocks (~> 2.3.0)
26
- rspec-core (2.3.1)
27
- rspec-expectations (2.3.0)
22
+ rspec (2.8.0)
23
+ rspec-core (~> 2.8.0)
24
+ rspec-expectations (~> 2.8.0)
25
+ rspec-mocks (~> 2.8.0)
26
+ rspec-core (2.8.0)
27
+ rspec-expectations (2.8.0)
28
28
  diff-lcs (~> 1.1.2)
29
- rspec-mocks (2.3.0)
30
- ruby-debug-base19 (0.11.25)
29
+ rspec-mocks (2.8.0)
30
+ ruby-debug-base19 (0.11.26)
31
31
  columnize (>= 0.3.1)
32
32
  linecache19 (>= 0.5.11)
33
33
  ruby_core_source (>= 0.1.4)
@@ -50,6 +50,6 @@ DEPENDENCIES
50
50
  nokogiri
51
51
  rcov
52
52
  rdoc (>= 3.9.4)
53
- rspec (~> 2.3.0)
53
+ rspec (~> 2.8.0)
54
54
  ruby-debug19 (>= 0.11.6)
55
55
  typhoeus
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.9
1
+ 0.3.0
@@ -5,7 +5,7 @@ module MarketBot
5
5
  MARKET_ATTRIBUTES = [:title, :rating, :updated, :current_version, :requires_android,
6
6
  :category, :installs, :size, :price, :content_rating, :description,
7
7
  :votes, :developer, :more_from_developer, :users_also_installed,
8
- :related, :banner_icon_url]
8
+ :related, :banner_icon_url, :website_url, :email]
9
9
 
10
10
  attr_reader :app_id
11
11
  attr_reader *MARKET_ATTRIBUTES
@@ -80,6 +80,21 @@ module MarketBot
80
80
 
81
81
  result[:banner_icon_url] = doc.css('.doc-banner-icon img').first.attributes['src'].value
82
82
 
83
+
84
+ if website_elem = doc.css('a').select{ |l| l.text.include?("Visit Developer's Website")}.first
85
+ redirect_url = website_elem.attribute('href').value
86
+
87
+ if q_param = URI(redirect_url).query.split('&').select{ |p| p =~ /q=/ }.first
88
+ actual_url = q_param.gsub('q=', '')
89
+ end
90
+
91
+ result[:website_url] = actual_url
92
+ end
93
+
94
+ if email_elem = doc.css('a').select{ |l| l.text.include?("Email Developer")}.first
95
+ result[:email] = email_elem.attribute('href').value.gsub(/^mailto:/, '')
96
+ end
97
+
83
98
  result
84
99
  end
85
100
 
data/market_bot.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "market_bot"
8
- s.version = "0.2.9"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Chad Remesch"]
12
- s.date = "2011-12-18"
12
+ s.date = "2012-01-15"
13
13
  s.description = "Market Bot is a high performance Ruby scraper for Google's Android Market with a simple to use API. It is built on top of Nokogiri and Typhoeus."
14
14
  s.email = "chad@remesch.com"
15
15
  s.extra_rdoc_files = [
@@ -56,7 +56,7 @@ Gem::Specification.new do |s|
56
56
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
57
  s.add_runtime_dependency(%q<typhoeus>, [">= 0"])
58
58
  s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
59
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
59
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
60
60
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
61
61
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
62
62
  s.add_development_dependency(%q<rcov>, [">= 0"])
@@ -66,7 +66,7 @@ Gem::Specification.new do |s|
66
66
  else
67
67
  s.add_dependency(%q<typhoeus>, [">= 0"])
68
68
  s.add_dependency(%q<nokogiri>, [">= 0"])
69
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
69
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
70
70
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
71
71
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
72
72
  s.add_dependency(%q<rcov>, [">= 0"])
@@ -77,7 +77,7 @@ Gem::Specification.new do |s|
77
77
  else
78
78
  s.add_dependency(%q<typhoeus>, [">= 0"])
79
79
  s.add_dependency(%q<nokogiri>, [">= 0"])
80
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
80
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
81
81
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
82
82
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
83
83
  s.add_dependency(%q<rcov>, [">= 0"])
@@ -25,6 +25,8 @@ def check_getters(app)
25
25
  app.users_also_installed.should == [{:app_id=>"com.deadmansproductions.undecided"}, {:app_id=>"com.mudstuffingindustries.redneckjellyfish"}, {:app_id=>"com.jae.firestarter"}, {:app_id=>"com.lyote.blurt"}]
26
26
  app.related.should == [{:app_id=>"jp.co.fsi.refills"}, {:app_id=>"net.hexage.radiant.hd"}, {:app_id=>"net.hexage.radiant"}, {:app_id=>"com.wpd.game.popstar"}]
27
27
  app.banner_icon_url.should == 'https://lh3.ggpht.com/e6QqjMM9K__moeCm2C5HRb0SmGX0XqzhnhiE1MUx8MdNVdQbQW9rhFX_qmtbtBxHAa0=w124'
28
+ app.website_url.should == 'http://bluefroggaming.com'
29
+ app.email.should == 'support@hdgames.zendesk.com'
28
30
  end
29
31
  end
30
32
 
@@ -64,6 +66,8 @@ describe 'App' do
64
66
  result[:votes].should == '5'
65
67
  result[:developer].should == 'Blue Frog Gaming'
66
68
  result[:banner_icon_url].should == 'https://lh3.ggpht.com/e6QqjMM9K__moeCm2C5HRb0SmGX0XqzhnhiE1MUx8MdNVdQbQW9rhFX_qmtbtBxHAa0=w124'
69
+ result[:website_url].should == 'http://bluefroggaming.com'
70
+ result[:email].should == 'support@hdgames.zendesk.com'
67
71
 
68
72
  result
69
73
  end
@@ -85,6 +89,8 @@ describe 'App' do
85
89
  result[:developer].should == 'Evernote Corp.'
86
90
  result[:installs].should == '5,000,000 - 10,000,000'
87
91
  result[:banner_icon_url].should == 'https://lh4.ggpht.com/YpRePJZ4TJUCdERkX-E0uUq6jhaofOS1szIejmo3DZm4oEq82AqcUpoj9FHOxFRvprU=w124'
92
+ result[:website_url].should == 'http://www.evernote.com'
93
+ result[:email].should == nil
88
94
  end
89
95
 
90
96
  it 'should populate a hash with the correct keys/values' do
@@ -103,6 +109,8 @@ describe 'App' do
103
109
  result[:rating].should == nil
104
110
  result[:votes].should == nil
105
111
  result[:banner_icon_url].should == 'https://lh3.ggpht.com/XEJ1MZFUqXKDfTSwqpL8Apgo3qMAixdG3l_gt8FuFstGUd2vk7-qDIKH4fHRMi57-p4=w124'
112
+ result[:website_url].should == 'http://www.donothave.com'
113
+ result[:email].should == 'kooistar_solutions@hotmail.com'
106
114
  end
107
115
 
108
116
  it 'should populate the associated apps keys' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: market_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-18 00:00:00.000000000Z
12
+ date: 2012-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: typhoeus
16
- requirement: &70100455353960 !ruby/object:Gem::Requirement
16
+ requirement: &70166504901780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70100455353960
24
+ version_requirements: *70166504901780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70100455353280 !ruby/object:Gem::Requirement
27
+ requirement: &70166504917480 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,21 +32,21 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70100455353280
35
+ version_requirements: *70166504917480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70100455352620 !ruby/object:Gem::Requirement
38
+ requirement: &70166504916600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: 2.3.0
43
+ version: 2.8.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70100455352620
46
+ version_requirements: *70166504916600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &70100455352060 !ruby/object:Gem::Requirement
49
+ requirement: &70166504915700 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70100455352060
57
+ version_requirements: *70166504915700
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &70100455351380 !ruby/object:Gem::Requirement
60
+ requirement: &70166504914720 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.4
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70100455351380
68
+ version_requirements: *70166504914720
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &70100455350820 !ruby/object:Gem::Requirement
71
+ requirement: &70166504913780 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70100455350820
79
+ version_requirements: *70166504913780
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: ZenTest
82
- requirement: &70100455350280 !ruby/object:Gem::Requirement
82
+ requirement: &70166504912940 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 4.6.2
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70100455350280
90
+ version_requirements: *70166504912940
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: ruby-debug19
93
- requirement: &70100455349640 !ruby/object:Gem::Requirement
93
+ requirement: &70166504912060 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.11.6
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70100455349640
101
+ version_requirements: *70166504912060
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdoc
104
- requirement: &70100455349100 !ruby/object:Gem::Requirement
104
+ requirement: &70166504911200 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: 3.9.4
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70100455349100
112
+ version_requirements: *70166504911200
113
113
  description: Market Bot is a high performance Ruby scraper for Google's Android Market
114
114
  with a simple to use API. It is built on top of Nokogiri and Typhoeus.
115
115
  email: chad@remesch.com
@@ -160,7 +160,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
160
  version: '0'
161
161
  segments:
162
162
  - 0
163
- hash: 3323249028092503121
163
+ hash: -2327443459896423926
164
164
  required_rubygems_version: !ruby/object:Gem::Requirement
165
165
  none: false
166
166
  requirements: