fetchapp 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 70ef6a8f692f7fe6690c18919683a8bd34a30871
4
+ data.tar.gz: 84ac7190e5ddacb65f4578573a462ebbcb8de989
5
+ SHA512:
6
+ metadata.gz: 454ea5cd4e43eb4cdef7934503c5a574719f0f27c58cffc37ee19d9b1297ff4660f5a6cbfd58c1286be04637fa73627bdf41729304e259bf17cbc19482beecc1
7
+ data.tar.gz: fbbb62290ebd6dfc9935e83fa33b3055cfec6e654b109df162a7130cc4ac6d2c9e071bd73a8c49d001113b5cf5a0212936603c0e759bea2d2470f8d01cfcc0b6
data/bin/fetchapp ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require "FetchItunes"
3
+ FetchItunes::fetch
@@ -0,0 +1,44 @@
1
+ class ConditionFetch
2
+
3
+ def self.fetch_ios_apple(json_body,type_value)
4
+ #fetch content key
5
+ track_name_key="trackName"
6
+ track_id_key="trackId"
7
+ niminum_os_version_key="minimumOsVersion"
8
+ track_url_key="trackViewUrl"
9
+ bundle_id_key="bundleId"
10
+ version_key="version"
11
+
12
+ final_apps=Array.new
13
+ results_array=json_body["results"]
14
+ results_array.each do |result|
15
+ support_array=result["supportedDevices"]
16
+ if support_array
17
+ support_content= support_array.join
18
+ if support_content.upcase.start_with? type_value.upcase
19
+ track_name=result[track_name_key]
20
+ track_id =result[track_id_key]
21
+ track_nimi_os=result[niminum_os_version_key]
22
+ track_url=result[track_url_key]
23
+ track_bundle_id=result[bundle_id_key]
24
+ track_version=result[version_key]
25
+
26
+ app=Hash.new
27
+ app[track_name_key]=track_name
28
+ app[track_id_key]=track_id
29
+ app[niminum_os_version_key]=track_nimi_os
30
+ app[track_url_key]=track_url
31
+ app[bundle_id_key]=track_bundle_id
32
+ app[version_key]=track_version
33
+
34
+ final_apps << app
35
+
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ return final_apps
42
+ end
43
+ end
44
+
@@ -0,0 +1,66 @@
1
+ module FetchItunes
2
+ autoload :ConditionFetch, 'ConditionFetch'
3
+ autoload :HTTPItunesGetRequest, 'HTTPItunesGetRequest'
4
+
5
+ def self.fetch
6
+ if ARGV.length==0 || ARGV == nil
7
+ puts "error: Parameter does not match,there is not any parameter"
8
+ return nil
9
+ end
10
+ arg_flags=ARGV
11
+ flags=Array.new
12
+
13
+ type_key="-t"
14
+ type_value=nil
15
+
16
+ all_info_key="-a"
17
+ isAll=false
18
+
19
+ arg_flags.each do |flag|
20
+ if flag == type_key
21
+ flag_content_index=arg_flags.index(flag) +1
22
+ raise "args count not match !" if arg_flags.count <= flag_content_index
23
+ type_value=arg_flags[flag_content_index];
24
+ elsif flag == all_info_key
25
+ isAll=true
26
+ end
27
+ end
28
+
29
+ #fetch content key
30
+ track_name_key="trackName"
31
+ track_id_key="trackId"
32
+ niminum_os_version_key="minimumOsVersion"
33
+ track_url_key="trackViewUrl"
34
+ bundle_id_key="bundleId"
35
+ version_key="version"
36
+
37
+ request = HTTPItunesGetRequest.new
38
+ request.item_id="284417353"
39
+ request.country="cn"
40
+ request.entity="software"
41
+ json_body= request.getItemInfos
42
+
43
+ fetch_items= ConditionFetch.fetch_ios_apple(json_body,type_value)
44
+ fetch_items.each do |item|
45
+ name=item[track_name_key]
46
+ track_id=item[track_id_key]
47
+ niminum_version=item[niminum_os_version_key]
48
+ track_url=item[track_url_key]
49
+ bundle_id=item[bundle_id_key]
50
+ version=item[version_key]
51
+
52
+ space=" : "
53
+
54
+ if isAll
55
+ puts "--------#{name}----------"
56
+ puts track_id_key + space + track_id.to_s
57
+ puts niminum_os_version_key + space + niminum_os_version_key
58
+ puts track_url_key + space + track_url_key
59
+ puts bundle_id_key + space + bundle_id_key.to_s
60
+ puts version_key + space + version_key
61
+ elsif
62
+ puts "------#{name}------#{bundle_id}---------"
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,34 @@
1
+ #Checkout all apple's app. Name and identifier
2
+
3
+ require "net/http"
4
+ require "json"
5
+
6
+ class HTTPItunesGetRequest
7
+
8
+ attr_reader :base_url
9
+ attr_accessor :item_id
10
+ attr_accessor :country
11
+ attr_accessor :entity
12
+
13
+ def initialize
14
+ @base_url="https://itunes.apple.com/lookup?"
15
+ end
16
+
17
+ def getItemInfos
18
+ begin
19
+ raise "Item_id is empty" if @item_id.empty?
20
+ full_url=@base_url + "id=#{@item_id}" + "&country=#{@country}" + "&entity=#{@entity}" + "&limit=200";
21
+ uri=URI(full_url);
22
+ puts "start request ....."
23
+ res=Net::HTTP.get_response(uri)
24
+ response_body=res.body
25
+ json_body = JSON.parse response_body;
26
+ puts "request OK !" if res.code == "200"
27
+ return json_body
28
+ rescue Exception => e
29
+ puts e
30
+ end
31
+
32
+ end
33
+
34
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fetchapp
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - chengkai
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-17 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: fetch apple app
14
+ email: chengkai@1853.com
15
+ executables:
16
+ - fetchapp
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/ConditionFetch.rb
21
+ - lib/FetchItunes.rb
22
+ - lib/HTTPItunesGetRequest.rb
23
+ - bin/fetchapp
24
+ homepage: http://rubygems.org/gems/fetchapp
25
+ licenses: []
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.0.14
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: fetch app
47
+ test_files: []