unshorten 0.3.1 → 0.3.2
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/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:
|