onebox 1.9.26 → 1.9.28.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.
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.