onebox 1.8.69 → 1.8.70
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.
- checksums.yaml +4 -4
- data/lib/onebox/engine/gfycat_onebox.rb +46 -24
- data/lib/onebox/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 99bd6b866e7a0fb25a4d4571d9a5b0f77ab1ef6c191e0e1dd10572a315466d8f
|
|
4
|
+
data.tar.gz: ea87f0ca618a4d00924a52ed32efe00c922ec8e13d52b443ea230425573754f0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4a72e75cf77b783ba9c787d8e2f6c95d13d9a0b842ec88e80d6080ef290bb24ee5464d55549c5ba0e4cbfb3d0fd93e12a33eab1e9ff868ee3f0181444db732fc
|
|
7
|
+
data.tar.gz: 550c34c0dc9fba9ca6b03100721beb1b3b6a5b643fa43d515b947d6cc75f0f46deb3d9a409b4a90cccdaef0e6369feb673eab583575f4b5d497eec695a4045b3
|
|
@@ -12,10 +12,6 @@ module Onebox
|
|
|
12
12
|
1
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
def url
|
|
16
|
-
"https://gfycat.com/cajax/get/#{match[:name]}"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
15
|
def to_html
|
|
20
16
|
<<-HTML
|
|
21
17
|
<aside class="onebox gfycat">
|
|
@@ -32,14 +28,14 @@ module Onebox
|
|
|
32
28
|
</h4>
|
|
33
29
|
|
|
34
30
|
<div class="video">
|
|
35
|
-
<video controls loop
|
|
31
|
+
<video controls loop muted poster="#{data[:posterUrl]}" style="--aspect-ratio: #{data[:width]}/#{data[:height]}">
|
|
36
32
|
<source id="webmSource" src="#{data[:webmUrl]}" type="video/webm">
|
|
37
33
|
<source id="mp4Source" src="#{data[:mp4Url]}" type="video/mp4">
|
|
38
34
|
<img title="Sorry, your browser doesn't support HTML5 video." src="#{data[:posterUrl]}">
|
|
39
35
|
</video>
|
|
40
36
|
</div>
|
|
41
37
|
<p>
|
|
42
|
-
<span class="label1">#{data[:
|
|
38
|
+
<span class="label1">#{data[:keywords]}</span>
|
|
43
39
|
</p>
|
|
44
40
|
|
|
45
41
|
</article>
|
|
@@ -51,7 +47,7 @@ module Onebox
|
|
|
51
47
|
<<-HTML
|
|
52
48
|
<a href="#{data[:url]}">
|
|
53
49
|
<img src="#{data[:posterUrl]}" width="#{data[:width]}" height="#{data[:height]}"><br/>
|
|
54
|
-
#{data[:
|
|
50
|
+
#{data[:name]}
|
|
55
51
|
</a>
|
|
56
52
|
HTML
|
|
57
53
|
end
|
|
@@ -62,27 +58,53 @@ module Onebox
|
|
|
62
58
|
@match ||= @url.match(/^https?:\/\/gfycat\.com\/(gifs\/detail\/)?(?<name>.+)/)
|
|
63
59
|
end
|
|
64
60
|
|
|
61
|
+
def nokogiri_page
|
|
62
|
+
@nokogiri_page ||= begin
|
|
63
|
+
response = Onebox::Helpers.fetch_response(url, 10) rescue nil
|
|
64
|
+
Nokogiri::HTML(response)
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def get_og_data
|
|
69
|
+
og_data = {}
|
|
70
|
+
|
|
71
|
+
if json_string = nokogiri_page.at_css('script[type="application/ld+json"]')&.text
|
|
72
|
+
og_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(json_string))
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
og_data
|
|
76
|
+
end
|
|
77
|
+
|
|
65
78
|
def data
|
|
79
|
+
og_data = get_og_data
|
|
66
80
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
|
81
|
+
response = {
|
|
82
|
+
name: match[:name],
|
|
83
|
+
title: og_data[:headline] || 'No Title',
|
|
84
|
+
author: og_data[:author],
|
|
85
|
+
url: @url
|
|
83
86
|
}
|
|
84
|
-
end
|
|
85
87
|
|
|
88
|
+
keywords = og_data[:keywords]&.split(',')
|
|
89
|
+
if keywords
|
|
90
|
+
response[:keywords] = keywords.map { |t| "<a href='https://gfycat.com/gifs/search/#{t}'>##{t}</a>" }.join(' ')
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
if og_data[:video]
|
|
94
|
+
content_url = ::Onebox::Helpers.normalize_url_for_output(og_data[:video][:contentUrl])
|
|
95
|
+
video_url = Pathname.new(content_url)
|
|
96
|
+
response[:webmUrl] = video_url.sub_ext(".webm").to_s
|
|
97
|
+
response[:mp4Url] = video_url.sub_ext(".mp4").to_s
|
|
98
|
+
|
|
99
|
+
thumbnail_url = ::Onebox::Helpers.normalize_url_for_output(og_data[:video][:thumbnailUrl])
|
|
100
|
+
response[:posterUrl] = thumbnail_url
|
|
101
|
+
|
|
102
|
+
response[:width] = og_data[:video][:width]
|
|
103
|
+
response[:height] = og_data[:video][:height]
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
response
|
|
107
|
+
end
|
|
86
108
|
end
|
|
87
109
|
end
|
|
88
110
|
end
|
data/lib/onebox/version.rb
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.8.
|
|
4
|
+
version: 1.8.70
|
|
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: 2018-12-
|
|
13
|
+
date: 2018-12-22 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: multi_json
|
|
@@ -414,7 +414,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
414
414
|
version: '0'
|
|
415
415
|
requirements: []
|
|
416
416
|
rubyforge_project:
|
|
417
|
-
rubygems_version: 2.7.
|
|
417
|
+
rubygems_version: 2.7.6
|
|
418
418
|
signing_key:
|
|
419
419
|
specification_version: 4
|
|
420
420
|
summary: A gem for generating embeddable HTML previews from URLs.
|