unshorten 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/unshorten.rb +5 -4
- data/lib/version.rb +3 -0
- data/test/test_unshorten.rb +7 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 786f091853e66b01791b84ea4e1dae0fb45e0966
|
4
|
+
data.tar.gz: 533d25ed2aceed116ebbc6f682c533f00f6357b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0be3b4e703d81938bb376198d44f95db28ce3d18f4434d235bac00b91aeea3a29ce767ef7876314b96ca1f8e6f9c89fff0f60f35c1c31a43a40ee942742fc4c7
|
7
|
+
data.tar.gz: 987b63583edf60f3dd90046efb29ee7b6ede8f02b174ee0e0e6a7e2e7c397731ed43d806fd834a792350d6d69fe97ebe7e0a299f4d58000111a855b6ff0753ad
|
data/lib/unshorten.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
require 'net/http'
|
2
2
|
require 'net/https'
|
3
3
|
require 'uri'
|
4
|
+
require 'version'
|
4
5
|
|
5
6
|
# Get original URLs from shortened ones.
|
6
|
-
|
7
|
+
module Unshorten
|
7
8
|
# Cache entities limit
|
8
9
|
CACHE_SIZE_LIMIT = 1024
|
9
10
|
|
@@ -84,9 +85,9 @@ class Unshorten
|
|
84
85
|
http.read_timeout = options[:timeout]
|
85
86
|
http.use_ssl = true if uri.scheme == "https"
|
86
87
|
|
87
|
-
if uri.path
|
88
|
+
if uri.path && uri.query
|
88
89
|
response = http.request_head("#{uri.path}?#{uri.query}") rescue nil
|
89
|
-
elsif uri.path
|
90
|
+
elsif uri.path && !uri.query
|
90
91
|
response = http.request_head(uri.path) rescue nil
|
91
92
|
else
|
92
93
|
response = http.request_head('/') rescue nil
|
@@ -94,7 +95,7 @@ class Unshorten
|
|
94
95
|
|
95
96
|
if response.is_a? Net::HTTPRedirection and response['location'] then
|
96
97
|
expire_cache if @@cache.size > CACHE_SIZE_LIMIT
|
97
|
-
location = response['location']
|
98
|
+
location = URI.encode(response['location'])
|
98
99
|
location = (uri + location).to_s if location
|
99
100
|
@@cache[url] = follow(location, options, level + 1)
|
100
101
|
else
|
data/lib/version.rb
ADDED
data/test/test_unshorten.rb
CHANGED
@@ -16,6 +16,12 @@ class UnshortenTest < MiniTest::Test
|
|
16
16
|
assert_equal illegal_url, Unshorten.unshorten(illegal_url, :use_cache => false)
|
17
17
|
end
|
18
18
|
|
19
|
+
def test_illegal_url_results
|
20
|
+
shortened_url = 'http://bit.ly/1r904rG'
|
21
|
+
original_url = 'http://www.fwi.co.uk/articles/02/09/2014/146471/willow-diversification-secures-beef-farm39s-future.htm?cmpid=SOC|Twitter|FarmersWeekly|sf4488038|sf4488038'
|
22
|
+
assert_equal URI.encode(original_url), Unshorten.unshorten(shortened_url, :use_cache => false)
|
23
|
+
end
|
24
|
+
|
19
25
|
def test_option_max_level
|
20
26
|
assert_equal SHORTENED_URL, Unshorten.unshorten(SHORTENED_URL, :max_level => 0, :use_cache => false)
|
21
27
|
end
|
@@ -46,7 +52,7 @@ class UnshortenTest < MiniTest::Test
|
|
46
52
|
end
|
47
53
|
|
48
54
|
def test_relative_url
|
49
|
-
assert_equal 'http://waterpigs.co.uk/articles/getting-started-with-microformats2
|
55
|
+
assert_equal 'http://waterpigs.co.uk/articles/getting-started-with-microformats2/?utm_content=buffer79474&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer', Unshorten.unshorten('http://bit.ly/1l1Dz6K', :short_urls => nil, :use_cache => false)
|
50
56
|
end
|
51
57
|
|
52
58
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unshorten
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jun Wu
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '5.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '10.1'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '10.1'
|
41
41
|
description: Get original URLs from shortened ones
|
42
42
|
email: quark@lihdd.net
|
43
43
|
executables:
|
@@ -47,6 +47,7 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- bin/unshorten
|
49
49
|
- lib/unshorten.rb
|
50
|
+
- lib/version.rb
|
50
51
|
- test/test_unshorten.rb
|
51
52
|
homepage: https://github.com/quark-zju/unshorten
|
52
53
|
licenses:
|