onebox 1.9.26 → 1.9.28.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/.rubocop.yml +2 -1
- data/lib/onebox/engine.rb +2 -1
- data/lib/onebox/engine/cloudapp_onebox.rb +2 -2
- data/lib/onebox/engine/facebook_media_onebox.rb +32 -0
- data/lib/onebox/engine/flickr_onebox.rb +2 -2
- data/lib/onebox/engine/giphy_onebox.rb +1 -1
- data/lib/onebox/engine/google_photos_onebox.rb +2 -2
- data/lib/onebox/engine/image_onebox.rb +1 -1
- data/lib/onebox/engine/imgur_onebox.rb +2 -2
- data/lib/onebox/engine/instagram_onebox.rb +31 -15
- data/lib/onebox/engine/{reddit_image_onebox.rb → reddit_media_onebox.rb} +20 -1
- data/lib/onebox/engine/whitelisted_generic_onebox.rb +2 -0
- data/lib/onebox/version.rb +1 -1
- data/onebox.gemspec +2 -3
- data/templates/_layout.mustache +2 -2
- data/templates/amazon.mustache +1 -1
- data/templates/githubblob.mustache +2 -2
- data/templates/githubcommit.mustache +3 -3
- data/templates/githubgist.mustache +3 -3
- data/templates/githubissue.mustache +2 -2
- data/templates/githubpullrequest.mustache +4 -4
- data/templates/gitlabblob.mustache +2 -2
- data/templates/googledocs.mustache +2 -2
- data/templates/googledrive.mustache +2 -2
- data/templates/instagram.mustache +2 -2
- data/templates/pastebin.mustache +2 -2
- data/templates/pdf.mustache +2 -2
- data/templates/pubmed.mustache +1 -1
- data/templates/stackexchange.mustache +4 -4
- data/templates/twitterstatus.mustache +2 -2
- data/templates/wechatmp.mustache +1 -1
- data/templates/whitelistedgeneric.mustache +1 -1
- data/templates/wikimedia.mustache +1 -1
- data/templates/wikipedia.mustache +1 -1
- data/templates/xkcd.mustache +1 -1
- metadata +11 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2bb566d2096445a37f5328daab6bd9750c8fa75ce8740b7f2f858f56c9aa795
|
4
|
+
data.tar.gz: 1f4ce2ee9e5255a0889c3019649a9a34802a3b4d7c7d4494ab3425d98566d471
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e48b7a4787c335b9eefba80baa1b49d19e394b3a05ab1c43ed30fc176e5d0021a301ddbedcbf8d5a1e02649fadb41d8cd62d8668b3d0d62e030effffc667453
|
7
|
+
data.tar.gz: 8fbb2770d5ffa95e3efed6fb24c5f15468b659392e40bb5532abe7e7d4a677678dd2705e354efb8f33e4622c7608dac21bd6f446145a342c6683ec47d6cff178
|
data/.github/workflows/ci.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
inherit_gem:
|
2
|
+
rubocop-discourse: default.yml
|
data/lib/onebox/engine.rb
CHANGED
@@ -176,5 +176,6 @@ require_relative "engine/instagram_onebox"
|
|
176
176
|
require_relative "engine/gitlab_blob_onebox"
|
177
177
|
require_relative "engine/google_photos_onebox"
|
178
178
|
require_relative "engine/kaltura_onebox"
|
179
|
-
require_relative "engine/
|
179
|
+
require_relative "engine/reddit_media_onebox"
|
180
180
|
require_relative "engine/google_drive_onebox"
|
181
|
+
require_relative "engine/facebook_media_onebox"
|
@@ -25,7 +25,7 @@ module Onebox
|
|
25
25
|
|
26
26
|
def link_html(og)
|
27
27
|
<<-HTML
|
28
|
-
<a href='#{og.url}' target='_blank'>
|
28
|
+
<a href='#{og.url}' target='_blank' rel='noopener'>
|
29
29
|
#{og.title}
|
30
30
|
</a>
|
31
31
|
HTML
|
@@ -43,7 +43,7 @@ module Onebox
|
|
43
43
|
|
44
44
|
def image_html(og)
|
45
45
|
<<-HTML
|
46
|
-
<a href='#{og.url}' target='_blank' class='onebox'>
|
46
|
+
<a href='#{og.url}' target='_blank' class='onebox' rel='noopener'>
|
47
47
|
<img src='#{og.image}' #{og.title_attr} alt='CloudApp' width='480'>
|
48
48
|
</a>
|
49
49
|
HTML
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Onebox
|
4
|
+
module Engine
|
5
|
+
class FacebookMediaOnebox
|
6
|
+
include Engine
|
7
|
+
include StandardEmbed
|
8
|
+
|
9
|
+
matches_regexp(/^https?:\/\/.*\.facebook\.com\/(\w+)\/(videos|\?).*/)
|
10
|
+
always_https
|
11
|
+
|
12
|
+
def to_html
|
13
|
+
metadata = get_twitter
|
14
|
+
if metadata.present? && metadata[:card] == "player" && metadata[:player].present?
|
15
|
+
<<-HTML
|
16
|
+
<iframe src="#{metadata[:player]}"
|
17
|
+
width="#{metadata[:player_width]}"
|
18
|
+
height="#{metadata[:player_height]}"
|
19
|
+
scrolling="no"
|
20
|
+
frameborder="0"
|
21
|
+
allowfullscreen>
|
22
|
+
</iframe>
|
23
|
+
HTML
|
24
|
+
else
|
25
|
+
html = Onebox::Engine::WhitelistedGenericOnebox.new(@url, @timeout).to_html
|
26
|
+
return if Onebox::Helpers.blank?(html)
|
27
|
+
html
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -26,7 +26,7 @@ module Onebox
|
|
26
26
|
|
27
27
|
<<-HTML
|
28
28
|
<div class='onebox flickr-album'>
|
29
|
-
<a href='#{escaped_url}' target='_blank'>
|
29
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener'>
|
30
30
|
<span class='outer-box' style='max-width:#{og.image_width}px'>
|
31
31
|
<span class='inner-box'>
|
32
32
|
<span class='album-title'>#{album_title}</span>
|
@@ -42,7 +42,7 @@ module Onebox
|
|
42
42
|
escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
|
43
43
|
|
44
44
|
<<-HTML
|
45
|
-
<a href='#{escaped_url}' target='_blank' class="onebox">
|
45
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener' class="onebox">
|
46
46
|
<img src='#{og.get_secure_image}' #{og.title_attr} alt='Imgur' height='#{og.image_height}' width='#{og.image_width}'>
|
47
47
|
</a>
|
48
48
|
HTML
|
@@ -13,7 +13,7 @@ module Onebox
|
|
13
13
|
oembed = get_oembed
|
14
14
|
|
15
15
|
<<-HTML
|
16
|
-
<a href="#{oembed.url}" target="_blank" class="onebox">
|
16
|
+
<a href="#{oembed.url}" target="_blank" rel="noopener" class="onebox">
|
17
17
|
<img src="#{oembed.url}" width="#{oembed.width}" height="#{oembed.height}" #{oembed.title_attr}>
|
18
18
|
</a>
|
19
19
|
HTML
|
@@ -33,7 +33,7 @@ module Onebox
|
|
33
33
|
|
34
34
|
<<-HTML
|
35
35
|
<div class='onebox google-photos-album'>
|
36
|
-
<a href='#{escaped_url}' target='_blank'>
|
36
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener'>
|
37
37
|
<span class='outer-box' style='width:#{og.image_width}px'>
|
38
38
|
<span class='inner-box'>
|
39
39
|
<span class='album-title'>#{Onebox::Helpers.truncate(album_title, 80)}</span>
|
@@ -49,7 +49,7 @@ module Onebox
|
|
49
49
|
escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
|
50
50
|
|
51
51
|
<<-HTML
|
52
|
-
<a href='#{escaped_url}' target='_blank' class="onebox">
|
52
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener' class="onebox">
|
53
53
|
<img src='#{og.get_secure_image}' #{og.title_attr} alt='Google Photos' height='#{og.image_height}' width='#{og.image_width}'>
|
54
54
|
</a>
|
55
55
|
HTML
|
@@ -19,7 +19,7 @@ module Onebox
|
|
19
19
|
|
20
20
|
escaped_url = ::Onebox::Helpers.normalize_url_for_output(@url)
|
21
21
|
<<-HTML
|
22
|
-
<a href="#{escaped_url}" target="_blank" class="onebox">
|
22
|
+
<a href="#{escaped_url}" target="_blank" rel="noopener" class="onebox">
|
23
23
|
<img src="#{escaped_url}">
|
24
24
|
</a>
|
25
25
|
HTML
|
@@ -34,7 +34,7 @@ module Onebox
|
|
34
34
|
|
35
35
|
<<-HTML
|
36
36
|
<div class='onebox imgur-album'>
|
37
|
-
<a href='#{escaped_url}' target='_blank'>
|
37
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener'>
|
38
38
|
<span class='outer-box' style='width:#{og.image_width}px'>
|
39
39
|
<span class='inner-box'>
|
40
40
|
<span class='album-title'>#{album_title}</span>
|
@@ -57,7 +57,7 @@ module Onebox
|
|
57
57
|
escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
|
58
58
|
|
59
59
|
<<-HTML
|
60
|
-
<a href='#{escaped_url}' target='_blank' class="onebox">
|
60
|
+
<a href='#{escaped_url}' target='_blank' rel='noopener' class="onebox">
|
61
61
|
<img src='#{og.get_secure_image}' #{og.title_attr} alt='Imgur' height='#{og.image_height}' width='#{og.image_width}'>
|
62
62
|
</a>
|
63
63
|
HTML
|
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'htmlentities'
|
4
|
-
|
5
3
|
module Onebox
|
6
4
|
module Engine
|
7
5
|
class InstagramOnebox
|
@@ -9,25 +7,43 @@ module Onebox
|
|
9
7
|
include StandardEmbed
|
10
8
|
include LayoutSupport
|
11
9
|
|
12
|
-
matches_regexp(/^https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/?(?:.*)\/p
|
10
|
+
matches_regexp(/^https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/?(?:.*)\/p\/[a-zA-Z\d_-]+/)
|
13
11
|
always_https
|
14
12
|
|
15
|
-
def
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
json_data = html_doc.xpath('//script[contains(text(),"window._sharedData")]').text.to_s
|
20
|
-
title = "[Album] #{title}" if json_data =~ /"edge_sidecar_to_children"/
|
13
|
+
def clean_url
|
14
|
+
url.scan(/^https?:\/\/(?:www\.)?(?:instagram\.com|instagr\.am)\/?(?:.*)\/p\/[a-zA-Z\d_-]+/).flatten.first
|
15
|
+
end
|
21
16
|
|
22
|
-
|
23
|
-
|
24
|
-
|
17
|
+
def data
|
18
|
+
oembed = get_oembed
|
19
|
+
permalink = clean_url.gsub("/#{oembed.author_name}/", "/")
|
20
|
+
description = oembed.title
|
21
|
+
type = if description =~ /^Photos by/
|
22
|
+
"album"
|
23
|
+
elsif description =~ /^Video by/
|
24
|
+
"video"
|
25
|
+
else
|
26
|
+
"photo"
|
27
|
+
end
|
28
|
+
title = if type == "album"
|
29
|
+
"[Album] @#{oembed.author_name}"
|
30
|
+
else
|
31
|
+
"@#{oembed.author_name}"
|
32
|
+
end
|
33
|
+
|
34
|
+
result = { link: permalink,
|
35
|
+
title: title,
|
36
|
+
image: "#{permalink}/media/?size=l",
|
37
|
+
description: Onebox::Helpers.truncate(description, 250)
|
25
38
|
}
|
39
|
+
result[:video_link] = permalink if type == "video"
|
40
|
+
result
|
41
|
+
end
|
26
42
|
|
27
|
-
|
28
|
-
result[:video_link] = og.url if !og.video_secure_url.nil?
|
43
|
+
protected
|
29
44
|
|
30
|
-
|
45
|
+
def get_oembed_url
|
46
|
+
oembed_url = "https://api.instagram.com/oembed/?url=#{clean_url}"
|
31
47
|
end
|
32
48
|
end
|
33
49
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Onebox
|
4
4
|
module Engine
|
5
|
-
class
|
5
|
+
class RedditMediaOnebox
|
6
6
|
include Engine
|
7
7
|
include StandardEmbed
|
8
8
|
|
@@ -25,6 +25,25 @@ module Onebox
|
|
25
25
|
</article>
|
26
26
|
</aside>
|
27
27
|
HTML
|
28
|
+
elsif raw[:type] =~ /^video[\/\.]/
|
29
|
+
<<-HTML
|
30
|
+
<aside class="onebox reddit">
|
31
|
+
<header class="source">
|
32
|
+
<img src="#{raw[:favicon]}" class="site-icon" width="16" height="16">
|
33
|
+
<a href="#{raw[:url]}" target="_blank" rel="nofollow ugc noopener">#{raw[:site_name]}</a>
|
34
|
+
</header>
|
35
|
+
<article class="onebox-body">
|
36
|
+
<h3><a href="#{raw[:url]}" target="_blank" rel="nofollow ugc noopener">#{raw[:title]}</a></h3>
|
37
|
+
<div class="aspect-image-full-size">
|
38
|
+
<a href="#{raw[:url]}" target="_blank" rel="nofollow ugc noopener">
|
39
|
+
<img src="#{raw[:image]}" class="scale-image"/>
|
40
|
+
<span class="instagram-video-icon"></span>
|
41
|
+
</a>
|
42
|
+
</div>
|
43
|
+
<div class="description"><p>#{raw[:description]}</p></div>
|
44
|
+
</article>
|
45
|
+
</aside>
|
46
|
+
HTML
|
28
47
|
else
|
29
48
|
html = Onebox::Engine::WhitelistedGenericOnebox.new(@url, @timeout).to_html
|
30
49
|
return if Onebox::Helpers.blank?(html)
|
@@ -57,6 +57,7 @@ module Onebox
|
|
57
57
|
ehow.com
|
58
58
|
espn.go.com
|
59
59
|
etsy.com
|
60
|
+
facebook.com
|
60
61
|
findery.com
|
61
62
|
folksy.com
|
62
63
|
forbes.com
|
@@ -77,6 +78,7 @@ module Onebox
|
|
77
78
|
kickstarter.com
|
78
79
|
kinomap.com
|
79
80
|
lessonplanet.com
|
81
|
+
linkedin.com
|
80
82
|
liveleak.com
|
81
83
|
livestream.com
|
82
84
|
mashable.com
|
data/lib/onebox/version.rb
CHANGED
data/onebox.gemspec
CHANGED
@@ -28,13 +28,12 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_runtime_dependency 'sanitize'
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
31
|
-
spec.add_development_dependency 'rake', '
|
31
|
+
spec.add_development_dependency 'rake', '>= 12.3.3'
|
32
32
|
spec.add_development_dependency 'rspec', '~> 3.2'
|
33
33
|
spec.add_development_dependency 'fakeweb', '~> 1.3'
|
34
34
|
spec.add_development_dependency 'pry', '~> 0.10'
|
35
35
|
spec.add_development_dependency 'mocha', '~> 1.1'
|
36
|
-
spec.add_development_dependency 'rubocop', '~>
|
37
|
-
spec.add_development_dependency 'rubocop-discourse', '~> 1.0.1'
|
36
|
+
spec.add_development_dependency 'rubocop-discourse', '~> 2.1.2'
|
38
37
|
spec.add_development_dependency 'twitter', '~> 4.8'
|
39
38
|
spec.add_development_dependency 'guard-rspec', '~> 4.2.8'
|
40
39
|
spec.add_development_dependency 'sinatra', '~> 1.4'
|
data/templates/_layout.mustache
CHANGED
@@ -4,10 +4,10 @@
|
|
4
4
|
<img src="{{favicon}}" class="site-icon"/>
|
5
5
|
{{/favicon}}
|
6
6
|
{{#article_published_time}}
|
7
|
-
<a href="{{link}}" target='_blank' title="{{article_published_time_title}}">{{domain}} – {{article_published_time}}</a>
|
7
|
+
<a href="{{link}}" target='_blank' rel='noopener' title="{{article_published_time_title}}">{{domain}} – {{article_published_time}}</a>
|
8
8
|
{{/article_published_time}}
|
9
9
|
{{^article_published_time}}
|
10
|
-
<a href="{{link}}" target='_blank'>{{domain}}</a>
|
10
|
+
<a href="{{link}}" target='_blank' rel='noopener'>{{domain}}</a>
|
11
11
|
{{/article_published_time}}
|
12
12
|
</header>
|
13
13
|
<article class="onebox-body">
|
data/templates/amazon.mustache
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{{#image}}<img src="{{image}}" class="thumbnail"/>{{/image}}
|
2
2
|
|
3
|
-
<h3><a href='{{link}}' target='_blank'>{{title}}</a></h3>
|
3
|
+
<h3><a href='{{link}}' target='_blank' rel='noopener'>{{title}}</a></h3>
|
4
4
|
{{#by_info}}<b>{{by_info}}</b>{{/by_info}}
|
5
5
|
<p>{{description}}</p>
|
6
6
|
<p>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<h4><a href="{{link}}" target="_blank">{{title}}</a></h4>
|
1
|
+
<h4><a href="{{link}}" target="_blank" rel="noopener">{{title}}</a></h4>
|
2
2
|
{{^has_lines}}
|
3
3
|
{{#model_file}}
|
4
4
|
<iframe class="render-viewer" width="{{width}}" height="{{height}}" src="{{content}}" sandbox="allow-scripts allow-same-origin allow-top-navigation ">
|
@@ -40,5 +40,5 @@ pre.onebox code li.selected{
|
|
40
40
|
{{/has_lines}}
|
41
41
|
|
42
42
|
{{#truncated}}
|
43
|
-
This file has been truncated. <a href="{{link}}" target="_blank">show original</a>
|
43
|
+
This file has been truncated. <a href="{{link}}" target="_blank" rel="noopener">show original</a>
|
44
44
|
{{/truncated}}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<div class="github-info-container">
|
7
7
|
<h4>
|
8
|
-
<a href="{{html_url}}" target="_blank">{{title}}</a>
|
8
|
+
<a href="{{html_url}}" target="_blank" rel="noopener">{{title}}</a>
|
9
9
|
</h4>
|
10
10
|
|
11
11
|
<div class="github-info">
|
@@ -14,7 +14,7 @@
|
|
14
14
|
</div>
|
15
15
|
|
16
16
|
<div class="user">
|
17
|
-
<a href="{{author.html_url}}" target="_blank">
|
17
|
+
<a href="{{author.html_url}}" target="_blank" rel="noopener">
|
18
18
|
<img alt="{{author.login}}" src="{{author.avatar_url}}" class="onebox-avatar-inline" width="20" height="20">
|
19
19
|
{{author.login}}
|
20
20
|
</a>
|
@@ -22,7 +22,7 @@
|
|
22
22
|
</div>
|
23
23
|
|
24
24
|
<div class="lines" title="changed {{files.length}} files with {{stats.additions}} additions and {{stats.deletions}} deletions">
|
25
|
-
<a href="{{html_url}}" target="_blank">
|
25
|
+
<a href="{{html_url}}" target="_blank" rel="noopener">
|
26
26
|
<span class="added">+{{stats.additions}}</span>
|
27
27
|
<span class="removed">-{{stats.deletions}}</span>
|
28
28
|
</a>
|
@@ -1,12 +1,12 @@
|
|
1
|
-
<h4><a href="{{link}}" target="_blank">{{link}}</a></h4>
|
1
|
+
<h4><a href="{{link}}" target="_blank" rel="noopener">{{link}}</a></h4>
|
2
2
|
{{#gist_files}}
|
3
3
|
<h5>{{filename}}</h5>
|
4
4
|
<pre><code class='{{language}}'>{{content}}</code></pre>
|
5
|
-
{{#truncated?}}This file has been truncated. <a href="{{link}}" target="_blank">show original</a>{{/truncated?}}
|
5
|
+
{{#truncated?}}This file has been truncated. <a href="{{link}}" target="_blank" rel="noopener">show original</a>{{/truncated?}}
|
6
6
|
{{/gist_files}}
|
7
7
|
|
8
8
|
<p>
|
9
9
|
{{#truncated_files?}}
|
10
|
-
There are more than three files. <a href="{{link}}" target="_blank">show original</a>
|
10
|
+
There are more than three files. <a href="{{link}}" target="_blank" rel="noopener">show original</a>
|
11
11
|
{{/truncated_files?}}
|
12
12
|
</p>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<div class="github-info-container">
|
7
7
|
<h4>
|
8
|
-
<a href="{{link}}" target="_blank">{{title}}</a>
|
8
|
+
<a href="{{link}}" target="_blank" rel="noopener">{{title}}</a>
|
9
9
|
</h4>
|
10
10
|
|
11
11
|
<div class="github-info">
|
@@ -20,7 +20,7 @@
|
|
20
20
|
{{/closed_at}}
|
21
21
|
|
22
22
|
<div class="user">
|
23
|
-
<a href="{{user.html_url}}" target="_blank">
|
23
|
+
<a href="{{user.html_url}}" target="_blank" rel="noopener">
|
24
24
|
<img alt="{{user.login}}" src="{{user.avatar_url}}" class="onebox-avatar-inline" width="20" height="20">
|
25
25
|
{{user.login}}
|
26
26
|
</a>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<div class="github-info-container">
|
7
7
|
<h4>
|
8
|
-
<a href="{{html_url}}" target="_blank">{{title}}</a>
|
8
|
+
<a href="{{html_url}}" target="_blank" rel="noopener">{{title}}</a>
|
9
9
|
</h4>
|
10
10
|
|
11
11
|
<div class="branches">
|
@@ -18,14 +18,14 @@
|
|
18
18
|
</div>
|
19
19
|
|
20
20
|
<div class="user">
|
21
|
-
<a href="{{user.html_url}}" target="_blank">
|
21
|
+
<a href="{{user.html_url}}" target="_blank" rel="noopener">
|
22
22
|
<img alt="{{user.login}}" src="{{user.avatar_url}}" class="onebox-avatar-inline" width="20" height="20">
|
23
23
|
{{user.login}}
|
24
24
|
</a>
|
25
25
|
</div>
|
26
26
|
|
27
27
|
<div class="lines" title="{{commits}} commits changed {{changed_files}} files with {{additions}} additions and {{deletions}} deletions">
|
28
|
-
<a href="{{html_url}}/files" target="_blank">
|
28
|
+
<a href="{{html_url}}/files" target="_blank" rel="noopener">
|
29
29
|
<span class="added">+{{additions}}</span>
|
30
30
|
<span class="removed">-{{deletions}}</span>
|
31
31
|
</a>
|
@@ -33,4 +33,4 @@
|
|
33
33
|
</div>
|
34
34
|
|
35
35
|
</div>
|
36
|
-
</div>
|
36
|
+
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<h4><a href="{{link}}" target="_blank">{{title}}</a></h4>
|
1
|
+
<h4><a href="{{link}}" target="_blank" rel="noopener">{{title}}</a></h4>
|
2
2
|
{{^has_lines}}
|
3
3
|
<pre><code class='{{lang}}'>{{content}}</code></pre>
|
4
4
|
{{/has_lines}}
|
@@ -10,5 +10,5 @@
|
|
10
10
|
{{/has_lines}}
|
11
11
|
|
12
12
|
{{#truncated}}
|
13
|
-
This file has been truncated. <a href="{{link}}" target="_blank">show original</a>
|
13
|
+
This file has been truncated. <a href="{{link}}" target="_blank" rel="noopener">show original</a>
|
14
14
|
{{/truncated}}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<a href='{{link}}' target="_blank"><span class='googledocs-onebox-logo g-{{type}}-logo'></span></a>
|
1
|
+
<a href='{{link}}' target="_blank" rel="noopener"><span class='googledocs-onebox-logo g-{{type}}-logo'></span></a>
|
2
2
|
|
3
|
-
<h3><a href='{{link}}' target="_blank">{{title}}</a></h3>
|
3
|
+
<h3><a href='{{link}}' target="_blank" rel="noopener">{{title}}</a></h3>
|
4
4
|
|
5
5
|
<p>{{description}}</p>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
{{^image}}
|
2
|
-
<a href='{{link}}' target="_blank"><span class='googledocs-onebox-logo g-drive-logo'></span></a>
|
2
|
+
<a href='{{link}}' target="_blank" rel="noopener"><span class='googledocs-onebox-logo g-drive-logo'></span></a>
|
3
3
|
{{/image}}
|
4
4
|
|
5
5
|
{{#image}}<img src="{{image}}" class="thumbnail"/>{{/image}}
|
6
6
|
|
7
|
-
<h3><a href="{{link}}" target="_blank">{{title}}</a></h3>
|
7
|
+
<h3><a href="{{link}}" target="_blank" rel="noopener">{{title}}</a></h3>
|
8
8
|
|
9
9
|
<p>{{description}}</p>
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<h3><a href="{{{link}}}" target="_blank">{{title}}</a></h3>
|
1
|
+
<h3><a href="{{{link}}}" target="_blank" rel="noopener">{{title}}</a></h3>
|
2
2
|
|
3
3
|
{{#image}}
|
4
4
|
<div class="instagram-images">
|
5
|
-
{{#video_link}} <a href="{{{video_link}}}" target="_blank"> {{/video_link}}
|
5
|
+
{{#video_link}} <a href="{{{video_link}}}" target="_blank" rel="noopener"> {{/video_link}}
|
6
6
|
<img class="instagram-image" src="{{{image}}}"/>
|
7
7
|
{{#video_link}} <span class="instagram-video-icon"></span></a> {{/video_link}}
|
8
8
|
</div>
|
data/templates/pastebin.mustache
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
<h4><a href="{{link}}" target="_blank">{{link}}</a></h4>
|
1
|
+
<h4><a href="{{link}}" target="_blank" rel="noopener">{{link}}</a></h4>
|
2
2
|
<pre><code class='lang-auto'>{{content}}</code></pre>
|
3
|
-
{{#truncated?}}This paste has been truncated. <a href="{{link}}" target="_blank">show original</a>{{/truncated?}}
|
3
|
+
{{#truncated?}}This paste has been truncated. <a href="{{link}}" target="_blank" rel="noopener">show original</a>{{/truncated?}}
|
data/templates/pdf.mustache
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
<a href='{{link}}' target="_blank"><span class='pdf-onebox-logo'></span></a>
|
2
|
-
<h3><a href='{{link}}' target="_blank">{{title}}</a></h3>
|
1
|
+
<a href='{{link}}' target="_blank" rel="noopener"><span class='pdf-onebox-logo'></span></a>
|
2
|
+
<h3><a href='{{link}}' target="_blank" rel="noopener">{{title}}</a></h3>
|
3
3
|
|
4
4
|
{{#filesize}}<p class='filesize'>{{filesize}}</p>{{/filesize}}
|
data/templates/pubmed.mustache
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
{{#owner.profile_image}}
|
2
|
-
<a href="{{owner.link}}" target="_blank">
|
2
|
+
<a href="{{owner.link}}" target="_blank" rel="noopener">
|
3
3
|
<img alt="{{owner.display_name}}" src="{{owner.profile_image}}" class="thumbnail onebox-avatar">
|
4
4
|
</a>
|
5
5
|
{{/owner.profile_image}}
|
6
6
|
<h4>
|
7
|
-
<a href="{{link}}" target="_blank">{{{title}}}</a>
|
7
|
+
<a href="{{link}}" target="_blank" rel="noopener">{{{title}}}</a>
|
8
8
|
</h4>
|
9
9
|
|
10
10
|
<div class="tags">
|
@@ -14,8 +14,8 @@
|
|
14
14
|
<div class="date">
|
15
15
|
{{#is_question}}asked by{{/is_question}}
|
16
16
|
{{#is_answer}}answered by{{/is_answer}}
|
17
|
-
<a href="{{owner.link}}" target="_blank">
|
17
|
+
<a href="{{owner.link}}" target="_blank" rel="noopener">
|
18
18
|
{{owner.display_name}}
|
19
19
|
</a>
|
20
|
-
on <a href="{{link}}" target="_blank">{{creation_date}}</a>
|
20
|
+
on <a href="{{link}}" target="_blank" rel="noopener">{{creation_date}}</a>
|
21
21
|
</div>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
{{#avatar}}<img src="{{avatar}}" class="thumbnail onebox-avatar">{{/avatar}}
|
2
2
|
|
3
|
-
<h4><a href='{{link}}' target='_blank'>{{title}}</a></h4>
|
3
|
+
<h4><a href='{{link}}' target='_blank' rel='noopener'>{{title}}</a></h4>
|
4
4
|
|
5
5
|
<div class="tweet"> {{{tweet}}}{{#quoted_tweet}}<div class="quoted"><a class="quoted-link" href="{{quoted_link}}"><p class="quoted-title">{{quoted_full_name}} <span>@{{quoted_screen_name}}</span></p></a><div>{{quoted_tweet}}</div></div>{{/quoted_tweet}}</div>
|
6
6
|
|
7
7
|
<div class='date'>
|
8
|
-
<a href="{{link}}" target="_blank">{{timestamp}}</a>
|
8
|
+
<a href="{{link}}" target="_blank" rel="noopener">{{timestamp}}</a>
|
9
9
|
{{#likes}}
|
10
10
|
<span class="like">
|
11
11
|
<svg viewBox="0 0 512 512" width="14px" height="16px" aria-hidden="true">
|
data/templates/wechatmp.mustache
CHANGED
data/templates/xkcd.mustache
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.
|
4
|
+
version: 1.9.28.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joanna Zeta
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2020-
|
13
|
+
date: 2020-05-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -114,16 +114,16 @@ dependencies:
|
|
114
114
|
name: rake
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- - "
|
117
|
+
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
119
|
+
version: 12.3.3
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
|
-
- - "
|
124
|
+
- - ">="
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
126
|
+
version: 12.3.3
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: rspec
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
@@ -180,34 +180,20 @@ dependencies:
|
|
180
180
|
- - "~>"
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '1.1'
|
183
|
-
- !ruby/object:Gem::Dependency
|
184
|
-
name: rubocop
|
185
|
-
requirement: !ruby/object:Gem::Requirement
|
186
|
-
requirements:
|
187
|
-
- - "~>"
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: 0.78.0
|
190
|
-
type: :development
|
191
|
-
prerelease: false
|
192
|
-
version_requirements: !ruby/object:Gem::Requirement
|
193
|
-
requirements:
|
194
|
-
- - "~>"
|
195
|
-
- !ruby/object:Gem::Version
|
196
|
-
version: 0.78.0
|
197
183
|
- !ruby/object:Gem::Dependency
|
198
184
|
name: rubocop-discourse
|
199
185
|
requirement: !ruby/object:Gem::Requirement
|
200
186
|
requirements:
|
201
187
|
- - "~>"
|
202
188
|
- !ruby/object:Gem::Version
|
203
|
-
version: 1.
|
189
|
+
version: 2.1.2
|
204
190
|
type: :development
|
205
191
|
prerelease: false
|
206
192
|
version_requirements: !ruby/object:Gem::Requirement
|
207
193
|
requirements:
|
208
194
|
- - "~>"
|
209
195
|
- !ruby/object:Gem::Version
|
210
|
-
version: 1.
|
196
|
+
version: 2.1.2
|
211
197
|
- !ruby/object:Gem::Dependency
|
212
198
|
name: twitter
|
213
199
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,6 +307,7 @@ files:
|
|
321
307
|
- lib/onebox/engine/bandcamp_onebox.rb
|
322
308
|
- lib/onebox/engine/cloudapp_onebox.rb
|
323
309
|
- lib/onebox/engine/coub_onebox.rb
|
310
|
+
- lib/onebox/engine/facebook_media_onebox.rb
|
324
311
|
- lib/onebox/engine/five_hundred_px_onebox.rb
|
325
312
|
- lib/onebox/engine/flickr_onebox.rb
|
326
313
|
- lib/onebox/engine/flickr_shortened_onebox.rb
|
@@ -349,7 +336,7 @@ files:
|
|
349
336
|
- lib/onebox/engine/pastebin_onebox.rb
|
350
337
|
- lib/onebox/engine/pdf_onebox.rb
|
351
338
|
- lib/onebox/engine/pubmed_onebox.rb
|
352
|
-
- lib/onebox/engine/
|
339
|
+
- lib/onebox/engine/reddit_media_onebox.rb
|
353
340
|
- lib/onebox/engine/replit_onebox.rb
|
354
341
|
- lib/onebox/engine/simplecast_onebox.rb
|
355
342
|
- lib/onebox/engine/sketchfab_onebox.rb
|
@@ -433,7 +420,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
433
420
|
- !ruby/object:Gem::Version
|
434
421
|
version: '0'
|
435
422
|
requirements: []
|
436
|
-
rubygems_version: 3.
|
423
|
+
rubygems_version: 3.0.3
|
437
424
|
signing_key:
|
438
425
|
specification_version: 4
|
439
426
|
summary: A gem for generating embeddable HTML previews from URLs.
|