linkser 0.0.8 → 0.0.9
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.
- data/lib/linkser/objects/html.rb +21 -2
- data/lib/linkser/version.rb +1 -1
- metadata +133 -66
data/lib/linkser/objects/html.rb
CHANGED
@@ -24,7 +24,7 @@ module Linkser
|
|
24
24
|
if ogp and ogp.image
|
25
25
|
begin
|
26
26
|
img_spec = ImageSpec.new(ogp.image)
|
27
|
-
if valid_img? img_spec.width.to_f, img_spec.height.to_f
|
27
|
+
if valid_img? img_spec.width.to_f, img_spec.height.to_f and can_hotlink_img? ogp.image
|
28
28
|
images << Linkser::Resource.new({:type => "image", :url => ogp.image, :width => img_spec.width, :height => img_spec.height})
|
29
29
|
end
|
30
30
|
rescue
|
@@ -42,7 +42,7 @@ module Linkser
|
|
42
42
|
if [".jpg", ".jpeg", ".png"].include? img_ext
|
43
43
|
begin
|
44
44
|
img_spec = ImageSpec.new(img_src)
|
45
|
-
if valid_img? img_spec.width.to_f, img_spec.height.to_f
|
45
|
+
if valid_img? img_spec.width.to_f, img_spec.height.to_f and can_hotlink_img? img_src
|
46
46
|
images << Linkser::Resource.new({:type => "image", :url => img_src, :width => img_spec.width, :height => img_spec.height})
|
47
47
|
end
|
48
48
|
rescue
|
@@ -98,6 +98,25 @@ module Linkser
|
|
98
98
|
end
|
99
99
|
false
|
100
100
|
end
|
101
|
+
|
102
|
+
def can_hotlink_img? url, limit=10
|
103
|
+
uri = URI.parse(url)
|
104
|
+
http = Net::HTTP.new uri.host, uri.port
|
105
|
+
http.start do |agent|
|
106
|
+
agent.add_field 'Referrer', 'http://www.linkser.com/'
|
107
|
+
response = agent.head uri.request_uri
|
108
|
+
case response
|
109
|
+
when Net::HTTPSuccess then
|
110
|
+
return true
|
111
|
+
when Net::HTTPRedirection then
|
112
|
+
location = response['location']
|
113
|
+
warn "Redirecting image to #{location}"
|
114
|
+
return can_hotlink_img? location, limit - 1
|
115
|
+
else
|
116
|
+
return false
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
101
120
|
end
|
102
121
|
end
|
103
122
|
end
|
data/lib/linkser/version.rb
CHANGED
metadata
CHANGED
@@ -1,101 +1,158 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: linkser
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 9
|
10
|
+
version: 0.0.9
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Eduardo Casanova
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
17
|
+
|
18
|
+
date: 2011-12-22 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
15
21
|
name: rake
|
16
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
22
32
|
type: :runtime
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
26
35
|
name: nokogiri
|
27
|
-
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
38
|
none: false
|
29
|
-
requirements:
|
39
|
+
requirements:
|
30
40
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 4
|
46
|
+
- 2
|
32
47
|
version: 1.4.2
|
33
48
|
type: :runtime
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
37
51
|
name: rmagick
|
38
|
-
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
54
|
none: false
|
40
|
-
requirements:
|
55
|
+
requirements:
|
41
56
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 57
|
59
|
+
segments:
|
60
|
+
- 2
|
61
|
+
- 13
|
62
|
+
- 1
|
43
63
|
version: 2.13.1
|
44
64
|
type: :runtime
|
45
|
-
|
46
|
-
|
47
|
-
- !ruby/object:Gem::Dependency
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
48
67
|
name: ruby-imagespec
|
49
|
-
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
70
|
none: false
|
51
|
-
requirements:
|
71
|
+
requirements:
|
52
72
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 23
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 2
|
78
|
+
- 0
|
54
79
|
version: 0.2.0
|
55
80
|
type: :runtime
|
56
|
-
|
57
|
-
|
58
|
-
- !ruby/object:Gem::Dependency
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
59
83
|
name: opengraph
|
60
|
-
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
86
|
none: false
|
62
|
-
requirements:
|
87
|
+
requirements:
|
63
88
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 23
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
- 0
|
94
|
+
- 4
|
65
95
|
version: 0.0.4
|
66
96
|
type: :runtime
|
67
|
-
|
68
|
-
|
69
|
-
- !ruby/object:Gem::Dependency
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
70
99
|
name: activesupport
|
71
|
-
|
100
|
+
prerelease: false
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
102
|
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
103
|
+
requirements:
|
104
|
+
- - ">"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 5
|
107
|
+
segments:
|
108
|
+
- 2
|
109
|
+
- 2
|
110
|
+
- 1
|
76
111
|
version: 2.2.1
|
77
112
|
type: :runtime
|
113
|
+
version_requirements: *id006
|
114
|
+
- !ruby/object:Gem::Dependency
|
115
|
+
name: ruby-debug
|
78
116
|
prerelease: false
|
79
|
-
|
80
|
-
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
hash: 49
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
- 10
|
126
|
+
- 3
|
127
|
+
version: 0.10.3
|
128
|
+
type: :development
|
129
|
+
version_requirements: *id007
|
130
|
+
- !ruby/object:Gem::Dependency
|
81
131
|
name: rspec
|
82
|
-
|
132
|
+
prerelease: false
|
133
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
83
134
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
hash: 19
|
139
|
+
segments:
|
140
|
+
- 2
|
141
|
+
- 7
|
142
|
+
- 0
|
87
143
|
version: 2.7.0
|
88
144
|
type: :development
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
it and returns the relevant information about the resource.
|
93
|
-
email:
|
145
|
+
version_requirements: *id008
|
146
|
+
description: Linkser is a link parser for Ruby. It gets an URI, tries to dereference it and returns the relevant information about the resource.
|
147
|
+
email:
|
94
148
|
- ecasanovac@gmail.com
|
95
149
|
executables: []
|
150
|
+
|
96
151
|
extensions: []
|
152
|
+
|
97
153
|
extra_rdoc_files: []
|
98
|
-
|
154
|
+
|
155
|
+
files:
|
99
156
|
- .gitignore
|
100
157
|
- .rspec
|
101
158
|
- .travis.yml
|
@@ -114,26 +171,36 @@ files:
|
|
114
171
|
- spec/spec_helper.rb
|
115
172
|
homepage: https://github.com/ging/linkser
|
116
173
|
licenses: []
|
174
|
+
|
117
175
|
post_install_message:
|
118
176
|
rdoc_options: []
|
119
|
-
|
177
|
+
|
178
|
+
require_paths:
|
120
179
|
- lib
|
121
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
122
181
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
hash: 3
|
186
|
+
segments:
|
187
|
+
- 0
|
188
|
+
version: "0"
|
189
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
190
|
none: false
|
129
|
-
requirements:
|
130
|
-
- -
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
hash: 3
|
195
|
+
segments:
|
196
|
+
- 0
|
197
|
+
version: "0"
|
133
198
|
requirements: []
|
199
|
+
|
134
200
|
rubyforge_project:
|
135
201
|
rubygems_version: 1.8.10
|
136
202
|
signing_key:
|
137
203
|
specification_version: 3
|
138
204
|
summary: A link parser for Ruby
|
139
205
|
test_files: []
|
206
|
+
|