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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.rubocop.yml +2 -1
  4. data/lib/onebox/engine.rb +2 -1
  5. data/lib/onebox/engine/cloudapp_onebox.rb +2 -2
  6. data/lib/onebox/engine/facebook_media_onebox.rb +32 -0
  7. data/lib/onebox/engine/flickr_onebox.rb +2 -2
  8. data/lib/onebox/engine/giphy_onebox.rb +1 -1
  9. data/lib/onebox/engine/google_photos_onebox.rb +2 -2
  10. data/lib/onebox/engine/image_onebox.rb +1 -1
  11. data/lib/onebox/engine/imgur_onebox.rb +2 -2
  12. data/lib/onebox/engine/instagram_onebox.rb +31 -15
  13. data/lib/onebox/engine/{reddit_image_onebox.rb → reddit_media_onebox.rb} +20 -1
  14. data/lib/onebox/engine/whitelisted_generic_onebox.rb +2 -0
  15. data/lib/onebox/version.rb +1 -1
  16. data/onebox.gemspec +2 -3
  17. data/templates/_layout.mustache +2 -2
  18. data/templates/amazon.mustache +1 -1
  19. data/templates/githubblob.mustache +2 -2
  20. data/templates/githubcommit.mustache +3 -3
  21. data/templates/githubgist.mustache +3 -3
  22. data/templates/githubissue.mustache +2 -2
  23. data/templates/githubpullrequest.mustache +4 -4
  24. data/templates/gitlabblob.mustache +2 -2
  25. data/templates/googledocs.mustache +2 -2
  26. data/templates/googledrive.mustache +2 -2
  27. data/templates/instagram.mustache +2 -2
  28. data/templates/pastebin.mustache +2 -2
  29. data/templates/pdf.mustache +2 -2
  30. data/templates/pubmed.mustache +1 -1
  31. data/templates/stackexchange.mustache +4 -4
  32. data/templates/twitterstatus.mustache +2 -2
  33. data/templates/wechatmp.mustache +1 -1
  34. data/templates/whitelistedgeneric.mustache +1 -1
  35. data/templates/wikimedia.mustache +1 -1
  36. data/templates/wikipedia.mustache +1 -1
  37. data/templates/xkcd.mustache +1 -1
  38. metadata +11 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84aac5ae01b5513e3f3f24ab5dcef3ea04fce6f760acd88439cbab7aa0155232
4
- data.tar.gz: 48e36383d31afec9d40ac32194756107c911de597596a9b3231967c6a22b8462
3
+ metadata.gz: b2bb566d2096445a37f5328daab6bd9750c8fa75ce8740b7f2f858f56c9aa795
4
+ data.tar.gz: 1f4ce2ee9e5255a0889c3019649a9a34802a3b4d7c7d4494ab3425d98566d471
5
5
  SHA512:
6
- metadata.gz: 275d1316c48338b60eab191e076117619fd9ecb0f944cc88429151316df7fab10fd2251035ddbda5a0dd711700d75aa9c19490d42ad41c295e799c7a38168625
7
- data.tar.gz: d89cbca0ea276ed3c6c7d6b96e72763e42cbbd3c14e249c6516601b78e6239b78c24136dbaa628de9b42c246dc0ecfb576eb6a57eee7473b0991ea67d0b6778d
6
+ metadata.gz: 5e48b7a4787c335b9eefba80baa1b49d19e394b3a05ab1c43ed30fc176e5d0021a301ddbedcbf8d5a1e02649fadb41d8cd62d8668b3d0d62e030effffc667453
7
+ data.tar.gz: 8fbb2770d5ffa95e3efed6fb24c5f15468b659392e40bb5532abe7e7d4a677678dd2705e354efb8f33e4622c7608dac21bd6f446145a342c6683ec47d6cff178
@@ -49,6 +49,6 @@ jobs:
49
49
  - uses: actions/checkout@v2
50
50
 
51
51
  - name: Release Gem
52
- uses: cadwallion/publish-rubygems-action@5dfdb61
52
+ uses: CvX/publish-rubygems-action@master
53
53
  env:
54
54
  RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
@@ -1 +1,2 @@
1
- inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml
1
+ inherit_gem:
2
+ rubocop-discourse: default.yml
@@ -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/reddit_image_onebox"
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 data
16
- og = get_opengraph
17
- title = og.title.split(":")[0].strip.gsub(" on Instagram", "")
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
- result = { link: og.url,
23
- title: Onebox::Helpers.truncate(title, 80),
24
- description: og.description(250)
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
- result[:image] = og.image if !og.image.nil?
28
- result[:video_link] = og.url if !og.video_secure_url.nil?
43
+ protected
29
44
 
30
- result
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 RedditImageOnebox
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Onebox
4
- VERSION = "1.9.26"
4
+ VERSION = "1.9.28.2"
5
5
  end
@@ -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', '~> 10.4'
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', '~> 0.78.0'
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'
@@ -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}} &ndash; {{article_published_time}}</a>
7
+ <a href="{{link}}" target='_blank' rel='noopener' title="{{article_published_time_title}}">{{domain}} &ndash; {{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">
@@ -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>
@@ -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?}}
@@ -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}}
@@ -1,5 +1,5 @@
1
1
  <h4>
2
- <a href="{{link}}" target="_blank">{{title}}</a>
2
+ <a href="{{link}}" target="_blank" rel="noopener">{{title}}</a>
3
3
  </h4>
4
4
 
5
5
  <div class="date">
@@ -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">
@@ -1,4 +1,4 @@
1
- <h3><a href='{{link}}' target='_blank'>{{title}}</a></h3>
1
+ <h3><a href='{{link}}' target='_blank' rel='noopener'>{{title}}</a></h3>
2
2
  {{#by_info}}<b>{{by_info}}</b>{{/by_info}}
3
3
  <p>{{description}}</p>
4
4
 
@@ -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
 
5
5
  <p>{{description}}</p>
6
6
 
@@ -1,3 +1,3 @@
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>
@@ -1,5 +1,5 @@
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
 
5
5
  <p>{{description}}</p>
@@ -1,4 +1,4 @@
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="xkcd-image"><img src="{{image}}"/></div>
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.26
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-02-03 00:00:00.000000000 Z
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: '10.4'
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: '10.4'
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.0.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.0.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/reddit_image_onebox.rb
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.1.2
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.