fetchapp 2.1.0 → 2.3.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 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