supermarket 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,17 @@
1
+
2
+ # Android Market API
3
+
4
+ This is a thin JRuby wrapper for the [Android Market API](http://code.google.com/p/android-market-api/) Java project.
5
+
6
+ It's a new project and only some parts of the protocol have been implemented.
7
+
8
+ ## Synopis
9
+
10
+ require 'android-market/session'
11
+ session = AndroidMarket::Session.new
12
+
13
+ # search apps
14
+ session.search("foo")
15
+
16
+ # retrieve comments for an app
17
+ session.comments("com.example.my.project")
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env jruby
2
+ $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
3
+
4
+ require 'supermarket/session'
5
+
6
+ puts case ARGV.shift
7
+ when "search"; SuperMarket::Session.new.search(ARGV.shift || "Test")
8
+ when "comments";SuperMarket::Session.new.comments(ARGV.shift || 'org.jruby.ruboto.irb')
9
+ else "#{File.basename($0)} [search|comments] [query|app_id]"
10
+ end
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env jruby
2
+ require 'java'
3
+ require 'yaml'
4
+
5
+ require File.dirname(__FILE__) + "/jars/AndroidMarketApi.jar"
6
+ require File.dirname(__FILE__) + "/jars/protobuf-java-2.2.0.jar"
7
+
8
+ import 'com.gc.android.market.api.MarketSession'
9
+ import 'com.gc.android.market.api.model.Market'
10
+
11
+ #A thin Ruby wrapper around the Java based Android Market API
12
+ #http://code.google.com/p/android-market-api/
13
+ module SuperMarket
14
+ class Session
15
+ attr_reader :_session
16
+
17
+ def initialize
18
+ @_session = MarketSession.new
19
+ @_session.login(config['login'], config['password'])
20
+ end
21
+
22
+ def config_file
23
+ File.join(ENV['HOME'], '.supermarket.yml')
24
+ end
25
+
26
+ def config
27
+ @config ||= begin
28
+ unless File.exists?(config_file)
29
+ File.open(config_file, 'w') { |f| f << YAML.dump('login'=>'someone@gmail.com', 'password'=>'secr3t') }
30
+ raise "Android market config file not found. Please edit #{config_file}"
31
+ end
32
+ YAML.load_file(config_file)
33
+ end
34
+ end
35
+
36
+
37
+ def search(query, extended=true, start=0, count=10)
38
+ request = Market::AppsRequest.newBuilder().
39
+ setQuery(query).
40
+ setStartIndex(start).
41
+ setEntriesCount(count).
42
+ setWithExtendedInfo(extended).build
43
+ execute(request)
44
+ end
45
+
46
+
47
+ def comments(app_id, start=0, count=10)
48
+ request = Market::CommentsRequest.newBuilder().
49
+ setAppId(app_id).
50
+ setStartIndex(start).
51
+ setEntriesCount(count).build()
52
+
53
+ execute(request).comments_list.to_a
54
+ end
55
+
56
+
57
+ protected
58
+ def execute(request)
59
+ response = nil
60
+ _session.append(request) do |ctxt, resp|
61
+ response = resp
62
+ end
63
+ _session.flush
64
+ response
65
+ end
66
+ end
67
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: supermarket
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 0
9
+ version: 0.0.0
10
+ platform: ruby
11
+ authors:
12
+ - Jan Berkel
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-23 00:00:00 +01:00
18
+ default_executable: market
19
+ dependencies: []
20
+
21
+ description: An unoffical/reverse engineered API for Android market
22
+ email: jan.berkel@gmail.com
23
+ executables:
24
+ - market
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.md
29
+ files:
30
+ - bin/market
31
+ - lib/supermarket/jars/AndroidMarketApi.jar
32
+ - lib/supermarket/jars/protobuf-java-2.2.0.jar
33
+ - lib/supermarket/session.rb
34
+ - README.md
35
+ has_rdoc: true
36
+ homepage: http://github.com/jberkel/supermarket
37
+ licenses: []
38
+
39
+ post_install_message:
40
+ rdoc_options:
41
+ - --charset=UTF-8
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ segments:
49
+ - 0
50
+ version: "0"
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ segments:
56
+ - 0
57
+ version: "0"
58
+ requirements: []
59
+
60
+ rubyforge_project:
61
+ rubygems_version: 1.3.6
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: JRuby bindings for android-market-api
65
+ test_files: []
66
+