auto_tagging 1.0.0 → 1.0.1

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.
@@ -8,17 +8,19 @@ module AutoTagging
8
8
  PASSWORD = 'notsecure'
9
9
 
10
10
  API_HOST = 'api.del.icio.us'
11
+ API_PAGE = '/v1/posts/suggest'
11
12
 
12
13
  def get_tags(opts)
13
14
  AutoTagging::SearchParam.url_search?(opts) ? api_request(url(opts)) : []
14
15
  end
15
16
 
17
+ private
18
+
16
19
  def api_request(url)
17
20
  wait_for_next_valid_request
18
- http = Net::HTTP.new(API_HOST, 443)
19
- http.use_ssl = true
20
- http.start do |http|
21
- req = Net::HTTP::Get.new("/v1/posts/suggest?url=#{url}", {"User-Agent" => "auto_tagging ruby gem"})
21
+
22
+ prepared_http.start do |http|
23
+ req = Net::HTTP::Get.new(api_request_url(url), user_agent)
22
24
  req.basic_auth(USERNAME, PASSWORD)
23
25
  parse_response(http.request(req))
24
26
  end
@@ -26,10 +28,23 @@ module AutoTagging
26
28
  []
27
29
  end
28
30
 
29
- def parse_response(response)
30
- xml = response.body
31
+ def prepared_http
32
+ http = Net::HTTP.new(API_HOST, 443)
33
+ http.use_ssl = true
34
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
35
+ http
36
+ end
37
+
38
+ def api_request_url(url)
39
+ "#{API_PAGE}?url=#{url}"
40
+ end
31
41
 
32
- REXML::Document.new(xml).root.elements.map { |e| e.attributes['tag'] }
42
+ def user_agent
43
+ {"User-Agent" => "auto_tagging ruby gem"}
44
+ end
45
+
46
+ def parse_response(response)
47
+ REXML::Document.new(response.body).root.elements.map { |e| e.attributes['tag'] }
33
48
  rescue
34
49
  []
35
50
  end
@@ -42,4 +57,22 @@ module AutoTagging
42
57
  "#{URI.encode(AutoTagging::SearchParam.to_valid_url(opts[:url]))}"
43
58
  end
44
59
  end
45
- end
60
+ end
61
+
62
+ #ssl certificate ( Chung chi ssl ) was created uniquely for each website
63
+ #steps
64
+ #browser request server for ssl certificate
65
+ #server send back its ssl certificate
66
+ #browser then verify for the validity of certificate by sending this certificate to GLobalSign or Verisign
67
+ #browser then send back digital number to encode and decode
68
+
69
+
70
+ #another steps
71
+ #browser make request to a secure url (https)
72
+ #web server sends its public key with its certificate
73
+ #browser then check for its validity (issued by a trusted party, still valid, related to site contacted)
74
+ #browser then use public key to encrypt a random symmetric encryption key and sends it to the server
75
+ #The web server decrypts the symmetric encryption key using its private key and uses the symmetric key to decrypt the URL and http data.
76
+
77
+ #public key => send out to everybody , let them encrypt some data with this public key and send back the encrypted data
78
+ #private key => use to decrypt the encrypted data which is encrypted by the sent out public key
@@ -1,3 +1,3 @@
1
1
  module AutoTagging
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: auto_tagging
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: