onebox 1.8.68 → 1.8.69

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ebcc562d8b0dcc66b83ddd79e1a3bcc47e2202686d8b96417a00e1a28b4bf3e
4
- data.tar.gz: d7d3ba019ba3c50c02236b731e64981812cbd08ed51ef903d226fd31a7bc900c
3
+ metadata.gz: 98a0701ca393ddadda7d9d38abcd9d99b2d9fbdfec7a18643b106adfddf45ad7
4
+ data.tar.gz: 699090849c9ac55d0362b3785f8d4a447c509bd7a47cc4d2ee6ae79ee0f869db
5
5
  SHA512:
6
- metadata.gz: 13eb57f76bd7419811a03149467fbf89d3ea4d587fae333e20a28cabd3087c315bf6ba6a08346e59060284b07289f83d4de1d05a678a0d6897a732cac066505b
7
- data.tar.gz: 7d32c90c35c3ce018aadbf547b987ed034076ee8bdd15d6d5f90d6f7f6ba2716cc8ab2910d9b07d48acd0247c70bf51331f595b8c35295ae5f08c9892c8b74c8
6
+ metadata.gz: 3f474fc31092624d6d00062167334fcf2a61fb85b2da6075d73ed74ef34ffbc9561fd74d1d2b467410cec9c72c16f1fad863320646980422da544c40c2c16b67
7
+ data.tar.gz: 204da8eaac3fa2fef4fdbb39b0b470807eba0c2fa969bcd4d9168739e07fc5ff2e5d9c868632621ff7bdd879c9a0c6d3adeeb2af935e2d996aff4e137723386c
data/.gitignore CHANGED
@@ -18,3 +18,5 @@ test/version_tmp
18
18
  tmp
19
19
  *.swp
20
20
  .DS_Store
21
+
22
+ .rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml
@@ -1,112 +1 @@
1
- AllCops:
2
- TargetRubyVersion: 2.3
3
- DisabledByDefault: true
4
- Include:
5
- - 'onebox.gemspec'
6
- - 'Rakefile'
7
- Exclude:
8
- - 'vendor/**/*'
9
-
10
- # Prefer &&/|| over and/or.
11
- Style/AndOr:
12
- Enabled: true
13
-
14
- # Do not use braces for hash literals when they are the last argument of a
15
- # method call.
16
- Style/BracesAroundHashParameters:
17
- Enabled: true
18
-
19
- # Align `when` with `case`.
20
- Layout/CaseIndentation:
21
- Enabled: true
22
-
23
- # Align comments with method definitions.
24
- Layout/CommentIndentation:
25
- Enabled: true
26
-
27
- # No extra empty lines.
28
- Layout/EmptyLines:
29
- Enabled: true
30
-
31
- # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
32
- Style/HashSyntax:
33
- Enabled: true
34
-
35
- # Two spaces, no tabs (for indentation).
36
- Layout/IndentationWidth:
37
- Enabled: true
38
-
39
- Layout/SpaceAfterColon:
40
- Enabled: true
41
-
42
- Layout/SpaceAfterComma:
43
- Enabled: true
44
-
45
- Layout/SpaceAroundEqualsInParameterDefault:
46
- Enabled: true
47
-
48
- Layout/SpaceAroundKeyword:
49
- Enabled: true
50
-
51
- Layout/SpaceAroundOperators:
52
- Enabled: true
53
-
54
- Layout/SpaceBeforeFirstArg:
55
- Enabled: true
56
-
57
- # Defining a method with parameters needs parentheses.
58
- Style/MethodDefParentheses:
59
- Enabled: true
60
-
61
- # Use `foo {}` not `foo{}`.
62
- Layout/SpaceBeforeBlockBraces:
63
- Enabled: true
64
-
65
- # Use `foo { bar }` not `foo {bar}`.
66
- Layout/SpaceInsideBlockBraces:
67
- Enabled: true
68
-
69
- # Use `{ a: 1 }` not `{a:1}`.
70
- Layout/SpaceInsideHashLiteralBraces:
71
- Enabled: true
72
-
73
- Layout/SpaceInsideParens:
74
- Enabled: true
75
-
76
- # Detect hard tabs, no hard tabs.
77
- Layout/Tab:
78
- Enabled: true
79
-
80
- # Blank lines should not have any spaces.
81
- Layout/TrailingBlankLines:
82
- Enabled: true
83
-
84
- # No trailing whitespace.
85
- Layout/TrailingWhitespace:
86
- Enabled: true
87
-
88
- Lint/Debugger:
89
- Enabled: true
90
-
91
- Lint/BlockAlignment:
92
- Enabled: true
93
-
94
- # Align `end` with the matching keyword or starting expression except for
95
- # assignments, where it should be aligned with the LHS.
96
- Lint/EndAlignment:
97
- Enabled: true
98
- EnforcedStyleAlignWith: variable
99
-
100
- # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
101
- Lint/RequireParentheses:
102
- Enabled: true
103
-
104
- Layout/MultilineMethodCallIndentation:
105
- Enabled: true
106
- EnforcedStyle: indented
107
-
108
- Layout/AlignHash:
109
- Enabled: true
110
-
111
- Bundler/OrderedGems:
112
- Enabled: false
1
+ inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml
data/README.md CHANGED
@@ -4,7 +4,6 @@ onebox
4
4
  [![Gem Version](https://badge.fury.io/rb/onebox.png)](https://rubygems.org/gems/onebox)
5
5
  [![Code Climate](https://codeclimate.com/github/dysania/onebox.png)](https://codeclimate.com/github/dysania/onebox)
6
6
  [![Build Status](https://travis-ci.org/discourse/onebox.png)](https://travis-ci.org/discourse/onebox)
7
- [![Dependency Status](https://gemnasium.com/discourse/onebox.png)](https://gemnasium.com/discourse/onebox)
8
7
 
9
8
  Onebox is a library for turning media URLs into simple HTML previews of the resource.
10
9
 
@@ -18,9 +18,9 @@ module Onebox
18
18
 
19
19
  private
20
20
 
21
- def match
22
- @match ||= @url.match(/asciinema\.org\/a\/(?<asciinema_id>[\p{Alnum}_\-]+)$/)
23
- end
21
+ def match
22
+ @match ||= @url.match(/asciinema\.org\/a\/(?<asciinema_id>[\p{Alnum}_\-]+)$/)
23
+ end
24
24
  end
25
25
  end
26
26
  end
@@ -21,37 +21,37 @@ module Onebox
21
21
 
22
22
  private
23
23
 
24
- def link_html(og)
25
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(og[:url])
24
+ def link_html(og)
25
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(og[:url])
26
26
 
27
- <<-HTML
27
+ <<-HTML
28
28
  <a href='#{escaped_url}' target='_blank'>
29
29
  #{og[:title]}
30
30
  </a>
31
31
  HTML
32
- end
32
+ end
33
33
 
34
- def video_html(og)
35
- src = og[:url]
36
- title = og[:title]
37
- direct_src = ::Onebox::Helpers.normalize_url_for_output("#{src}/#{title}")
34
+ def video_html(og)
35
+ src = og[:url]
36
+ title = og[:title]
37
+ direct_src = ::Onebox::Helpers.normalize_url_for_output("#{src}/#{title}")
38
38
 
39
- <<-HTML
39
+ <<-HTML
40
40
  <video width='480' height='360' #{Helpers.title_attr(og)} controls loop>
41
41
  <source src='#{direct_src}' type='video/mp4'>
42
42
  </video>
43
43
  HTML
44
- end
44
+ end
45
45
 
46
- def image_html(og)
47
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(og[:url])
46
+ def image_html(og)
47
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(og[:url])
48
48
 
49
- <<-HTML
49
+ <<-HTML
50
50
  <a href='#{escaped_url}' target='_blank' class='onebox'>
51
51
  <img src='#{og[:image]}' #{Helpers.title_attr(og)} alt='CloudApp' width='480'>
52
52
  </a>
53
53
  HTML
54
- end
54
+ end
55
55
  end
56
56
  end
57
57
  end
@@ -9,14 +9,14 @@ module Onebox
9
9
 
10
10
  private
11
11
 
12
- def data
13
- {
14
- link: link,
15
- title: raw.css('title').text.gsub("\n", '').strip(),
16
- image: raw.css('img[rel*="v:"]').first['src'],
17
- description: raw.css('meta[name=description]').first['content'],
18
- }
19
- end
12
+ def data
13
+ {
14
+ link: link,
15
+ title: raw.css('title').text.gsub("\n", '').strip(),
16
+ image: raw.css('img[rel*="v:"]').first['src'],
17
+ description: raw.css('meta[name=description]').first['content'],
18
+ }
19
+ end
20
20
 
21
21
  end
22
22
  end
@@ -58,30 +58,30 @@ module Onebox
58
58
 
59
59
  private
60
60
 
61
- def match
62
- @match ||= @url.match(/^https?:\/\/gfycat\.com\/(gifs\/detail\/)?(?<name>.+)/)
63
- end
61
+ def match
62
+ @match ||= @url.match(/^https?:\/\/gfycat\.com\/(gifs\/detail\/)?(?<name>.+)/)
63
+ end
64
64
 
65
- def data
65
+ def data
66
66
 
67
- total_tags = [raw['gfyItem']['tags'], raw['gfyItem']['userTags']].flatten.compact
68
- tag_links = total_tags.map { |t| "<a href='https://gfycat.com/gifs/search/#{t}'>##{t}</a>" }.join(' ') if total_tags
69
- autoplay = raw['gfyItem']['webmSize'].to_i < 10485760 ? 'autoplay' : ''
67
+ total_tags = [raw['gfyItem']['tags'], raw['gfyItem']['userTags']].flatten.compact
68
+ tag_links = total_tags.map { |t| "<a href='https://gfycat.com/gifs/search/#{t}'>##{t}</a>" }.join(' ') if total_tags
69
+ autoplay = raw['gfyItem']['webmSize'].to_i < 10485760 ? 'autoplay' : ''
70
70
 
71
- {
72
- name: raw['gfyItem']['gfyName'],
73
- title: raw['gfyItem']['title'] || 'No Title',
74
- author: raw['gfyItem']['userName'],
75
- tags: tag_links,
76
- url: @url,
77
- posterUrl: raw['gfyItem']['posterUrl'],
78
- webmUrl: raw['gfyItem']['webmUrl'],
79
- mp4Url: raw['gfyItem']['mp4Url'],
80
- width: raw['gfyItem']['width'],
81
- height: raw['gfyItem']['height'],
82
- autoplay: autoplay
83
- }
84
- end
71
+ {
72
+ name: raw['gfyItem']['gfyName'],
73
+ title: raw['gfyItem']['title'] || 'No Title',
74
+ author: raw['gfyItem']['userName'],
75
+ tags: tag_links,
76
+ url: @url,
77
+ posterUrl: raw['gfyItem']['posterUrl'],
78
+ webmUrl: raw['gfyItem']['webmUrl'],
79
+ mp4Url: raw['gfyItem']['mp4Url'],
80
+ width: raw['gfyItem']['width'],
81
+ height: raw['gfyItem']['height'],
82
+ autoplay: autoplay
83
+ }
84
+ end
85
85
 
86
86
  end
87
87
  end
@@ -17,23 +17,23 @@ module Onebox
17
17
 
18
18
  private
19
19
 
20
- def video_html(og)
21
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(og[:video_secure_url])
22
- escaped_image_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
20
+ def video_html(og)
21
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(og[:video_secure_url])
22
+ escaped_image_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
23
23
 
24
- <<-HTML
24
+ <<-HTML
25
25
  <video width='#{og[:video_width]}' height='#{og[:video_height]}' #{Helpers.title_attr(og)} poster="#{escaped_image_src}" controls loop>
26
26
  <source src='#{escaped_src}' type='video/mp4'>
27
27
  </video>
28
28
  HTML
29
- end
29
+ end
30
30
 
31
- def album_html(og)
32
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
33
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
34
- album_title = Onebox::Helpers::blank?(og[:description]) ? og[:title].strip : "[#{og[:description].strip}] #{og[:title].strip}"
31
+ def album_html(og)
32
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
33
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
34
+ album_title = Onebox::Helpers::blank?(og[:description]) ? og[:title].strip : "[#{og[:description].strip}] #{og[:title].strip}"
35
35
 
36
- <<-HTML
36
+ <<-HTML
37
37
  <div class='onebox google-photos-album'>
38
38
  <a href='#{escaped_url}' target='_blank'>
39
39
  <span class='outer-box' style='width:#{og[:image_width]}px'>
@@ -45,24 +45,24 @@ module Onebox
45
45
  </a>
46
46
  </div>
47
47
  HTML
48
- end
48
+ end
49
49
 
50
- def image_html(og)
51
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
52
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
50
+ def image_html(og)
51
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
52
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
53
53
 
54
- <<-HTML
54
+ <<-HTML
55
55
  <a href='#{escaped_url}' target='_blank' class="onebox">
56
56
  <img src='#{escaped_src}' #{Helpers.title_attr(og)} alt='Google Photos' height='#{og[:image_height]}' width='#{og[:image_width]}'>
57
57
  </a>
58
58
  HTML
59
- end
59
+ end
60
60
 
61
- def get_secure_link(link)
62
- secure_link = URI(link)
63
- secure_link.scheme = 'https'
64
- secure_link.to_s
65
- end
61
+ def get_secure_link(link)
62
+ secure_link = URI(link)
63
+ secure_link.scheme = 'https'
64
+ secure_link.to_s
65
+ end
66
66
  end
67
67
  end
68
68
  end
@@ -17,23 +17,23 @@ module Onebox
17
17
 
18
18
  private
19
19
 
20
- def video_html(og)
21
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(og[:video_secure_url])
20
+ def video_html(og)
21
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(og[:video_secure_url])
22
22
 
23
- <<-HTML
23
+ <<-HTML
24
24
  <video width='#{og[:video_width]}' height='#{og[:video_height]}' #{Helpers.title_attr(og)} controls loop>
25
25
  <source src='#{escaped_src}' type='video/mp4'>
26
26
  <source src='#{escaped_src.gsub('mp4', 'webm')}' type='video/webm'>
27
27
  </video>
28
28
  HTML
29
- end
29
+ end
30
30
 
31
- def album_html(og)
32
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
33
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
34
- album_title = "[Album] #{Onebox::Helpers.truncate(og[:title].strip, 80)}"
31
+ def album_html(og)
32
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
33
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
34
+ album_title = "[Album] #{Onebox::Helpers.truncate(og[:title].strip, 80)}"
35
35
 
36
- <<-HTML
36
+ <<-HTML
37
37
  <div class='onebox imgur-album'>
38
38
  <a href='#{escaped_url}' target='_blank'>
39
39
  <span class='outer-box' style='width:#{og[:image_width]}px'>
@@ -45,31 +45,31 @@ module Onebox
45
45
  </a>
46
46
  </div>
47
47
  HTML
48
- end
48
+ end
49
49
 
50
- def is_album?
51
- response = Onebox::Helpers.fetch_response("https://api.imgur.com/oembed.json?url=#{url}") rescue "{}"
52
- oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response))
53
- imgur_data_id = Nokogiri::HTML(oembed_data[:html]).xpath("//blockquote").attr("data-id")
54
- imgur_data_id.to_s[/a\//]
55
- end
50
+ def is_album?
51
+ response = Onebox::Helpers.fetch_response("https://api.imgur.com/oembed.json?url=#{url}") rescue "{}"
52
+ oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response))
53
+ imgur_data_id = Nokogiri::HTML(oembed_data[:html]).xpath("//blockquote").attr("data-id")
54
+ imgur_data_id.to_s[/a\//]
55
+ end
56
56
 
57
- def image_html(og)
58
- escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
59
- escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
57
+ def image_html(og)
58
+ escaped_url = ::Onebox::Helpers.normalize_url_for_output(url)
59
+ escaped_src = ::Onebox::Helpers.normalize_url_for_output(get_secure_link(og[:image]))
60
60
 
61
- <<-HTML
61
+ <<-HTML
62
62
  <a href='#{escaped_url}' target='_blank' class="onebox">
63
63
  <img src='#{escaped_src}' #{Helpers.title_attr(og)} alt='Imgur' height='#{og[:image_height]}' width='#{og[:image_width]}'>
64
64
  </a>
65
65
  HTML
66
- end
66
+ end
67
67
 
68
- def get_secure_link(link)
69
- secure_link = URI(link)
70
- secure_link.scheme = 'https'
71
- secure_link.to_s
72
- end
68
+ def get_secure_link(link)
69
+ secure_link = URI(link)
70
+ secure_link.scheme = 'https'
71
+ secure_link.to_s
72
+ end
73
73
 
74
74
  end
75
75
  end
@@ -19,16 +19,16 @@ module Onebox
19
19
 
20
20
  private
21
21
 
22
- def oembed_data
23
- @oembed_data ||= begin
24
- oembed_url = "https://soundcloud.com/oembed.json?url=#{url}"
25
- oembed_url << "&maxheight=166" unless url["/sets/"]
26
- response = Onebox::Helpers.fetch_response(oembed_url) rescue "{}"
27
- Onebox::Helpers.symbolize_keys(::MultiJson.load(response))
28
- rescue
29
- {}
30
- end
22
+ def oembed_data
23
+ @oembed_data ||= begin
24
+ oembed_url = "https://soundcloud.com/oembed.json?url=#{url}"
25
+ oembed_url << "&maxheight=166" unless url["/sets/"]
26
+ response = Onebox::Helpers.fetch_response(oembed_url) rescue "{}"
27
+ Onebox::Helpers.symbolize_keys(::MultiJson.load(response))
28
+ rescue
29
+ {}
31
30
  end
31
+ end
32
32
 
33
33
  end
34
34
  end