fetchapp 2.1.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 566b317b11dd0d25a4254e13e768a6435d474776
4
- data.tar.gz: 9307e6f355c7aa7e069a88c7b55ce4ef90ea77fb
3
+ metadata.gz: 3db0ba736a453933a9232c6b648a900bcdb59cbc
4
+ data.tar.gz: f0ab52dcece714187995ac863c8287ea2e328340
5
5
  SHA512:
6
- metadata.gz: a51869608bbedd95f3e332be2a08042468927e3b96a56bd6a96456369fcc7e16d4eaceef4dfcb785b904bce6263305476f2f92b38fd4a3493ab3aac4c1dc6ae8
7
- data.tar.gz: f91a33c94320120073ca293e08e426781bbd6fe7cc8ac26f079b161f00271679ea9ce365e182abb85d38883dfc7bab6cb243b05a9ebd5bc8b6110ce89bc0813c
6
+ metadata.gz: 07f7ab9b070b90365287434d737b1f43204e5dc6499e0803811728079edb0da8e3d1b6bd58d042600d833757e8b5b68359f6b7d34599a281656dd7ccecf67545
7
+ data.tar.gz: 01df35d5d9786bfce47cdebfd3869a89d9ce886ea1e4d2506e974e839658ffc943ac32e18ddcdc2190a89b44a671245dd7ede57b8a6a1b2be371a91bbf694557
@@ -1,67 +1,71 @@
1
1
  class ConditionFetch
2
-
2
+
3
3
  def self.fetch_ios_apple(json_body,type_value)
4
+
4
5
  #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
- kind_key="kind"
12
-
6
+ @@track_name_key="trackName"
7
+ @@track_id_key="trackId"
8
+ @@niminum_os_version_key="minimumOsVersion"
9
+ @@track_url_key="trackViewUrl"
10
+ @@bundle_id_key="bundleId"
11
+ @@version_key="version"
12
+ @@price_key="price"
13
+ @@kind_key="kind"
13
14
  isCondition=false
14
15
 
15
16
  final_apps=Array.new
16
17
  results_array=json_body["results"]
17
18
  results_array.each do |result|
18
- if result[kind_key]
19
+ if result[@@kind_key]
20
+ if type_value != nil
19
21
  if result[kind_key] == "software"
20
22
  support_array=result["supportedDevices"]
21
23
  if support_array
22
24
  support_content= support_array.join
25
+ puts support_content.upcase
23
26
  if support_content.upcase.include? type_value.upcase
24
- track_name=result[track_name_key]
25
- track_id =result[track_id_key]
26
- track_nimi_os=result[niminum_os_version_key]
27
- track_url=result[track_url_key]
28
- track_bundle_id=result[bundle_id_key]
29
- track_version=result[version_key]
30
-
31
- app=Hash.new
32
- app[track_name_key]=track_name
33
- app[track_id_key]=track_id
34
- app[niminum_os_version_key]=track_nimi_os
35
- app[track_url_key]=track_url
36
- app[bundle_id_key]=track_bundle_id
37
- app[version_key]=track_version
27
+ app = self.parse_result(result)
38
28
 
39
29
  final_apps << app
40
30
 
41
31
  end
42
32
  end
43
33
  elsif result[kind_key].upcase.include? type_value.upcase
44
- track_name=result[track_name_key]
45
- track_id =result[track_id_key]
46
- track_nimi_os=result[niminum_os_version_key]
47
- track_url=result[track_url_key]
48
- track_bundle_id=result[bundle_id_key]
49
- track_version=result[version_key]
50
-
51
- app=Hash.new
52
- app[track_name_key]=track_name
53
- app[track_id_key]=track_id
54
- app[niminum_os_version_key]=track_nimi_os
55
- app[track_url_key]=track_url
56
- app[bundle_id_key]=track_bundle_id
57
- app[version_key]=track_version
34
+ app = self.parse_result(result)
58
35
 
59
36
  final_apps << app
60
37
  end
38
+ else
39
+ app = self.parse_result(result)
40
+
41
+ final_apps << app
42
+ end
61
43
  end
62
44
  end
63
-
64
45
  return final_apps
65
46
  end
47
+
48
+ def self.parse_result(result)
49
+
50
+ track_name=result[@@track_name_key]
51
+ track_id =result[@@track_id_key]
52
+ track_nimi_os=result[@@niminum_os_version_key]
53
+ track_url=result[@@track_url_key]
54
+ track_bundle_id=result[@@bundle_id_key]
55
+ track_version=result[@@version_key]
56
+ track_price=result[@@price_key]
57
+
58
+ app=Hash.new
59
+ app[@@track_name_key]=track_name
60
+ app[@@track_id_key]=track_id
61
+ app[@@niminum_os_version_key]=track_nimi_os
62
+ app[@@track_url_key]=track_url
63
+ app[@@bundle_id_key]=track_bundle_id
64
+ app[@@version_key]=track_version
65
+ app[@@price_key]=track_price.to_s
66
+
67
+ return app
68
+
69
+ end
66
70
  end
67
71
 
data/lib/FetchItunes.rb CHANGED
@@ -10,12 +10,24 @@ module FetchItunes
10
10
  arg_flags=ARGV
11
11
  flags=Array.new
12
12
 
13
- type_key="-t"
13
+ type_key="-type"
14
14
  type_value=nil
15
-
16
- all_info_key="-a"
15
+
16
+ name_key="-name"
17
+ name_value=""
18
+
19
+ id_key="-id"
20
+ id_value=""
21
+
22
+ apple_key="-apple"
23
+ isApple=true
24
+
25
+ all_info_key="-all"
17
26
  isAll=false
18
27
 
28
+ limit_key="-count"
29
+ limit_value = "200"
30
+
19
31
  arg_flags.each do |flag|
20
32
  if flag == type_key
21
33
  flag_content_index=arg_flags.index(flag) +1
@@ -23,6 +35,20 @@ module FetchItunes
23
35
  type_value=arg_flags[flag_content_index];
24
36
  elsif flag == all_info_key
25
37
  isAll=true
38
+ elsif flag == name_key
39
+ flag_content_index=arg_flags.index(flag) +1
40
+ raise "args name not match !" if arg_flags.count <= flag_content_index
41
+ name_value=arg_flags[flag_content_index];
42
+ isApple=false
43
+ elsif flag == id_key
44
+ flag_content_index=arg_flags.index(flag) +1
45
+ raise "args id not match !" if arg_flags.count <= flag_content_index
46
+ id_value=arg_flags[flag_content_index];
47
+ isApple =false
48
+ elsif flag == limit_key
49
+ flag_content_index=arg_flags.index(flag) +1
50
+ raise "args id not match !" if arg_flags.count <= flag_content_index
51
+ limit_value=arg_flags[flag_content_index];
26
52
  end
27
53
  end
28
54
 
@@ -33,11 +59,18 @@ module FetchItunes
33
59
  track_url_key="trackViewUrl"
34
60
  bundle_id_key="bundleId"
35
61
  version_key="version"
62
+ price_key="price"
36
63
 
37
64
  request = HTTPItunesGetRequest.new
38
- request.item_id="284417353"
65
+ if isApple
66
+ request.item_id="284417353"
67
+ elsif !id_value.nil?
68
+ request.item_id=id_value
69
+ end
39
70
  request.country="cn"
40
71
  request.entity="software"
72
+ request.name=name_value
73
+ request.limit=limit_value
41
74
  json_body= request.getItemInfos
42
75
 
43
76
  fetch_items= ConditionFetch.fetch_ios_apple(json_body,type_value)
@@ -48,6 +81,7 @@ module FetchItunes
48
81
  track_url=item[track_url_key]
49
82
  bundle_id=item[bundle_id_key]
50
83
  version=item[version_key]
84
+ price=item[price_key]
51
85
 
52
86
  space=" : "
53
87
 
@@ -58,6 +92,7 @@ module FetchItunes
58
92
  puts track_url_key + space + track_url
59
93
  puts bundle_id_key + space + bundle_id.to_s
60
94
  puts version_key + space + version
95
+ puts price_key + space + price
61
96
  elsif
62
97
  puts "------#{name}------#{bundle_id}---------"
63
98
  end
@@ -9,15 +9,21 @@ class HTTPItunesGetRequest
9
9
  attr_accessor :item_id
10
10
  attr_accessor :country
11
11
  attr_accessor :entity
12
+ attr_accessor :name
13
+ attr_accessor :limit
12
14
 
13
15
  def initialize
14
- @base_url="https://itunes.apple.com/lookup?"
16
+ @base_url="https://itunes.apple.com/"
17
+ @method= "lookup?"
18
+ @limit="200"
15
19
  end
16
20
 
17
21
  def getItemInfos
18
22
  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";
23
+ raise "Itemid and name is empty" if @item_id.empty? && @name.empty?
24
+ @method = name.length ==0 ? "lookup?" : "search?"
25
+ full_url=@base_url + @method + (name.length ==0 ? "id=#{@item_id}" : "term=#{@name}") + "&country=#{@country}" + "&entity=#{@entity}" + "&limit=#{@limit}";
26
+ puts full_url
21
27
  uri=URI(full_url);
22
28
  puts "start request ....."
23
29
  res=Net::HTTP.get_response(uri)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fetchapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - chengkai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-20 00:00:00.000000000 Z
11
+ date: 2015-05-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: fetch apple app
14
14
  email: chengkai@1853.com
@@ -17,10 +17,10 @@ executables:
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - bin/fetchapp
20
21
  - lib/ConditionFetch.rb
21
22
  - lib/FetchItunes.rb
22
23
  - lib/HTTPItunesGetRequest.rb
23
- - bin/fetchapp
24
24
  homepage: http://rubygems.org/gems/fetchapp
25
25
  licenses: []
26
26
  metadata: {}
@@ -40,7 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  version: '0'
41
41
  requirements: []
42
42
  rubyforge_project:
43
- rubygems_version: 2.0.14
43
+ rubygems_version: 2.4.1
44
44
  signing_key:
45
45
  specification_version: 4
46
46
  summary: fetch app