link_thumbnailer 2.5.2 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/link_thumbnailer/configuration.rb +2 -1
- data/lib/link_thumbnailer/exceptions.rb +1 -0
- data/lib/link_thumbnailer/processor.rb +16 -1
- data/lib/link_thumbnailer/version.rb +1 -1
- 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: 70bf3449f58e41e93e1fca01e64835b3fe150d91
|
4
|
+
data.tar.gz: 8db948511fb227d94e6afbf6721222539edd13a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63ab6ab4ed55873cb612257507089af4fbd8e6ed3e941e46cfb92057fa59f31a92ed3f69a9b880e189ff4296e967964dcf40f46ffc36bb4fd650517de74079e4
|
7
|
+
data.tar.gz: 28ebc45714d8695ba0b2d912858aeba54bf4fb5326318b65855d3bbc7f060c4cb004196c89224b4ce6f407dec4e9adfbb4b69d4af1413f43cb6742afad290dac
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
# 2.6.0
|
2
|
+
|
3
|
+
- Introduce new `raise_on_invalid_format` option (false by default) to raise `LinkThumbnailer::FormatNotSupported` if http `Content-Type` is invalid. Fixes #61 and #64.
|
4
|
+
|
1
5
|
# 2.5.2
|
2
6
|
|
3
7
|
- Fix OpenURI::HTTPError exception raised when video_info gem is not able to parse video metadata. Fixes #60.
|
@@ -25,7 +25,7 @@ module LinkThumbnailer
|
|
25
25
|
attr_accessor :redirect_limit, :blacklist_urls, :user_agent,
|
26
26
|
:verify_ssl, :http_open_timeout, :http_read_timeout, :attributes,
|
27
27
|
:graders, :description_min_length, :positive_regex, :negative_regex,
|
28
|
-
:image_limit, :image_stats
|
28
|
+
:image_limit, :image_stats, :raise_on_invalid_format
|
29
29
|
|
30
30
|
alias_method :http_timeout, :http_open_timeout
|
31
31
|
alias_method :http_timeout=, :http_open_timeout=
|
@@ -58,6 +58,7 @@ module LinkThumbnailer
|
|
58
58
|
@negative_regex = /combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget|modal/i
|
59
59
|
@image_limit = 5
|
60
60
|
@image_stats = true
|
61
|
+
@raise_on_invalid_format = false
|
61
62
|
end
|
62
63
|
|
63
64
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'pry'
|
1
2
|
require 'delegate'
|
2
3
|
require 'uri'
|
3
4
|
require 'net/http/persistent'
|
@@ -53,8 +54,11 @@ module LinkThumbnailer
|
|
53
54
|
headers = {}
|
54
55
|
headers['Cookie'] = response['Set-Cookie'] if response['Set-Cookie'].present?
|
55
56
|
|
57
|
+
raise ::LinkThumbnailer::FormatNotSupported.new(response['Content-Type']) unless valid_response_format?(response)
|
58
|
+
|
56
59
|
case response
|
57
|
-
when ::Net::HTTPSuccess
|
60
|
+
when ::Net::HTTPSuccess
|
61
|
+
response.body
|
58
62
|
when ::Net::HTTPRedirection
|
59
63
|
call(
|
60
64
|
resolve_relative_url(response['location']),
|
@@ -102,6 +106,17 @@ module LinkThumbnailer
|
|
102
106
|
url.is_a?(::URI::HTTP)
|
103
107
|
end
|
104
108
|
|
109
|
+
def valid_response_format?(response)
|
110
|
+
return true unless config.raise_on_invalid_format
|
111
|
+
return true if response['Content-Type'] =~ /text\/html/
|
112
|
+
return true if response['Content-Type'] =~ /application\/html/
|
113
|
+
return true if response['Content-Type'] =~ /application\/xhtml\+xml/
|
114
|
+
return true if response['Content-Type'] =~ /application\/xml/
|
115
|
+
return true if response['Content-Type'] =~ /text\/xml/
|
116
|
+
return true if response['Content-Type'] =~ /text\/plain/
|
117
|
+
false
|
118
|
+
end
|
119
|
+
|
105
120
|
def url=(url)
|
106
121
|
@url = ::URI.parse(url.to_s)
|
107
122
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: link_thumbnailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre-Louis Gottfrois
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|