uri_shortener 0.0.7 → 0.0.8
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 +4 -4
- data/lib/uri_shortener.rb +57 -57
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ad13d4ed5e40c667c053523fc9f15478805d62b
|
4
|
+
data.tar.gz: b7cdf105e506126770046406c965d34d1f586ca5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef5783e737f9fd034dc235ce18a31cd4cc786ab23d6217c6686d9b17fcb3ee07edfff8e4cd7aa6d251bc67990943be8af91880e13c45b3b144969f5e1bb6b703
|
7
|
+
data.tar.gz: d4d34746b76f25151d773792a493a681983469d95bac502c7fae55c5367dcbe11bfbcadee7bd9c2cd0d7a93097b3400a8b461dee9ff99a1b76ae6377e61e552a
|
data/lib/uri_shortener.rb
CHANGED
@@ -1,57 +1,57 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require 'net/http'
|
3
|
-
require 'json'
|
4
|
-
class UriShortener
|
5
|
-
attr :long_uri
|
6
|
-
attr :short_uri
|
7
|
-
attr_accessor :type
|
8
|
-
|
9
|
-
def initialize long_uri, type="t.cn"
|
10
|
-
@long_uri = URI.encode(long_uri.gsub
|
11
|
-
@type = type # t.cn || rdcnzz || url.cn || 126.am
|
12
|
-
@short_uri = ""
|
13
|
-
end
|
14
|
-
|
15
|
-
def shorten
|
16
|
-
@short_uri = case @type
|
17
|
-
when "t.cn" then t_cn @long_uri
|
18
|
-
when "url.cn" then url_cn @long_uri
|
19
|
-
when "rdcnzz" then rdcnzz @long_uri
|
20
|
-
when "126.am" then am @long_uri
|
21
|
-
else puts "Not correct type"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def verify
|
26
|
-
begin
|
27
|
-
res = Net::HTTP.get_response URI(@short_uri)
|
28
|
-
URI("http://"+@long_uri) == URI(URI.encode res["location"])
|
29
|
-
rescue
|
30
|
-
false
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
def t_cn long_uri
|
36
|
-
response = Net::HTTP.post_form(URI("http://tinyurl.duapp.com/create.php"), {:url=>(URI.encode_www_form_component URI.decode(long_uri)), :type=>"t.cn"})
|
37
|
-
result = JSON.parse response.body
|
38
|
-
result['data']
|
39
|
-
end
|
40
|
-
|
41
|
-
def url_cn long_uri
|
42
|
-
response = Net::HTTP.get(URI("http://121.199.13.65/web/json.php?type=url.cn&xzurl=#{long_uri}"))
|
43
|
-
(/http\:\/\/\w+\.\w+\/\w+/.match response).to_s
|
44
|
-
end
|
45
|
-
|
46
|
-
def rdcnzz long_uri
|
47
|
-
response = Net::HTTP.get(URI("http://rdcnzz.com/v1/data/link_conv/rd_dispatcher.php?orig_link=#{long_uri}"))
|
48
|
-
end
|
49
|
-
|
50
|
-
def am long_uri
|
51
|
-
response = Net::HTTP.post_form(URI("http://126.am/api!shorten.action"), {:key=>"d1f04c518037412988e26e449469106f", :longUrl=>(URI.decode "http://"+long_uri)})
|
52
|
-
result = JSON.parse response.body
|
53
|
-
"http://"+result["url"]
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
# 126.am api key: d1f04c518037412988e26e449469106f
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
class UriShortener
|
5
|
+
attr :long_uri
|
6
|
+
attr :short_uri
|
7
|
+
attr_accessor :type
|
8
|
+
|
9
|
+
def initialize long_uri, type="t.cn"
|
10
|
+
@long_uri = URI.encode(long_uri.gsub /^http:\/\/|https:\/\//,"")
|
11
|
+
@type = type # t.cn || rdcnzz || url.cn || 126.am
|
12
|
+
@short_uri = ""
|
13
|
+
end
|
14
|
+
|
15
|
+
def shorten
|
16
|
+
@short_uri = case @type
|
17
|
+
when "t.cn" then t_cn @long_uri
|
18
|
+
when "url.cn" then url_cn @long_uri
|
19
|
+
when "rdcnzz" then rdcnzz @long_uri
|
20
|
+
when "126.am" then am @long_uri
|
21
|
+
else puts "Not correct type"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def verify
|
26
|
+
begin
|
27
|
+
res = Net::HTTP.get_response URI(@short_uri)
|
28
|
+
URI("http://"+@long_uri) == URI(URI.encode res["location"])
|
29
|
+
rescue
|
30
|
+
false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
def t_cn long_uri
|
36
|
+
response = Net::HTTP.post_form(URI("http://tinyurl.duapp.com/create.php"), {:url=>(URI.encode_www_form_component URI.decode(long_uri)), :type=>"t.cn"})
|
37
|
+
result = JSON.parse response.body
|
38
|
+
result['data']
|
39
|
+
end
|
40
|
+
|
41
|
+
def url_cn long_uri
|
42
|
+
response = Net::HTTP.get(URI("http://121.199.13.65/web/json.php?type=url.cn&xzurl=#{long_uri}"))
|
43
|
+
(/http\:\/\/\w+\.\w+\/\w+/.match response).to_s
|
44
|
+
end
|
45
|
+
|
46
|
+
def rdcnzz long_uri
|
47
|
+
response = Net::HTTP.get(URI("http://rdcnzz.com/v1/data/link_conv/rd_dispatcher.php?orig_link=#{long_uri}"))
|
48
|
+
end
|
49
|
+
|
50
|
+
def am long_uri
|
51
|
+
response = Net::HTTP.post_form(URI("http://126.am/api!shorten.action"), {:key=>"d1f04c518037412988e26e449469106f", :longUrl=>(URI.decode "http://"+long_uri)})
|
52
|
+
result = JSON.parse response.body
|
53
|
+
"http://"+result["url"]
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
# 126.am api key: d1f04c518037412988e26e449469106f
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uri_shortener
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Asakawa Ryu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 'Providing types: t.cn, url.cn, url7.me, 126.am'
|
14
14
|
email: i@nyangawa.me
|