media_meta_hash 0.0.6c → 0.0.6
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/media_meta_hash.rb +14 -22
- data/lib/media_meta_hash/version.rb +1 -1
- data/media_meta_hash.gemspec +1 -1
- data/spec/media_meta_hash_spec.rb +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 22275185996106b3a7a0d86ba8b5bee98619e746
|
|
4
|
+
data.tar.gz: bc41969aedeca54a19729fd3188bcba57e026c3a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 094c0e1a44b31abb587285a6df0c78a0423f43fa2bb3f82dac64a545c32d53f64519a71fb131d3324ec3d65132f3bd25607a6313af0d8643402a0a0ef3cbd0b2
|
|
7
|
+
data.tar.gz: d4418e0a5eb7610eceb9845aad73585a5ae611bbb355da6d9082100b639c448f5ec6fe64a6b9e41a036e62a849b61bc691965424ce72cfab77f2b29afaa09f81
|
data/lib/media_meta_hash.rb
CHANGED
|
@@ -2,23 +2,15 @@ require "media_meta_hash/version"
|
|
|
2
2
|
require "video_info"
|
|
3
3
|
require 'ostruct'
|
|
4
4
|
|
|
5
|
-
class VideoInfo
|
|
6
|
-
def to_hash
|
|
7
|
-
hash = {}
|
|
8
|
-
instance_variables.each {|var| hash[var.to_s.delete("@").to_sym] = instance_variable_get(var) }
|
|
9
|
-
hash
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
|
|
13
5
|
module MediaMetaHash
|
|
14
6
|
HASH_TYPE = Hash.new(:article)
|
|
15
7
|
|
|
16
8
|
|
|
17
|
-
def self.for
|
|
9
|
+
def self.for url, media_type = :video, opts = {}
|
|
18
10
|
self.media_meta_hash(media_type, url, opts)
|
|
19
11
|
end
|
|
20
12
|
|
|
21
|
-
def self.video_info
|
|
13
|
+
def self.video_info url
|
|
22
14
|
if url =~ /video\.fox(news|business)\.com\/v\/(\d*)\/.*/
|
|
23
15
|
partial_domain = $1
|
|
24
16
|
id = $2
|
|
@@ -56,15 +48,10 @@ module MediaMetaHash
|
|
|
56
48
|
:height => (480 * 0.5625).to_i
|
|
57
49
|
)
|
|
58
50
|
else
|
|
59
|
-
|
|
60
|
-
info = VideoInfo.get(url)
|
|
61
|
-
rescue VideoInfo::UrlError => e
|
|
62
|
-
info = nil
|
|
63
|
-
end
|
|
51
|
+
info = VideoInfo.get(url)
|
|
64
52
|
|
|
65
53
|
if url =~ /(youtube.com|youtu.be)/ && info
|
|
66
54
|
class << info
|
|
67
|
-
attr_accessor :width, :height
|
|
68
55
|
def og_url=(val)
|
|
69
56
|
@url = val
|
|
70
57
|
end
|
|
@@ -73,7 +60,6 @@ module MediaMetaHash
|
|
|
73
60
|
@url
|
|
74
61
|
end
|
|
75
62
|
end
|
|
76
|
-
|
|
77
63
|
info.og_url = self.get_video_src info.video_id
|
|
78
64
|
info.width = 480 if info.width == nil
|
|
79
65
|
info.height = (480 * 0.5625).to_i if info.height == nil
|
|
@@ -82,21 +68,27 @@ module MediaMetaHash
|
|
|
82
68
|
end
|
|
83
69
|
end
|
|
84
70
|
|
|
85
|
-
def self.video_hash
|
|
71
|
+
def self.video_hash url, opts
|
|
86
72
|
video = self.video_info(url)
|
|
87
73
|
|
|
88
74
|
if video
|
|
75
|
+
common = { :title => video.title,
|
|
76
|
+
:description => video.description,
|
|
77
|
+
:image => video.thumbnail_medium
|
|
78
|
+
}
|
|
79
|
+
|
|
89
80
|
{ :og => { :video => [video.og_url || video.embed_url,
|
|
90
81
|
{:height => video.height,
|
|
91
82
|
:width => video.width }],
|
|
92
|
-
:type => "video"
|
|
83
|
+
:type => "video"
|
|
84
|
+
}.merge!(common).merge!(opts),
|
|
93
85
|
|
|
94
86
|
:twitter => { :player => [(video.embed_url || video.og_url).sub("http://", "https://"),
|
|
95
87
|
{ :width => video.width,
|
|
96
88
|
:height => video.height
|
|
97
89
|
}],
|
|
98
90
|
:card => "player"
|
|
99
|
-
}.merge!(self.twitter_mobile(video.provider.downcase.to_sym, video.video_id)).merge!(opts)
|
|
91
|
+
}.merge!(common).merge!(self.twitter_mobile(video.provider.downcase.to_sym, video.video_id)).merge!(opts)
|
|
100
92
|
}
|
|
101
93
|
else
|
|
102
94
|
{}.merge!(opts)
|
|
@@ -118,7 +110,7 @@ module MediaMetaHash
|
|
|
118
110
|
"http://www.youtube.com/v/#{id}?autohide=1&version=3"
|
|
119
111
|
end
|
|
120
112
|
|
|
121
|
-
def self.media_meta_hash
|
|
113
|
+
def self.media_meta_hash media_type, url, opts = {}
|
|
122
114
|
if media_type == :video
|
|
123
115
|
self.video_hash(url, opts)
|
|
124
116
|
else
|
|
@@ -126,7 +118,7 @@ module MediaMetaHash
|
|
|
126
118
|
end
|
|
127
119
|
end
|
|
128
120
|
|
|
129
|
-
def self.twitter_mobile
|
|
121
|
+
def self.twitter_mobile provider, id
|
|
130
122
|
tags_for = Hash.new({})
|
|
131
123
|
tags_for[:youtube] = {
|
|
132
124
|
:app => { :name => { :iphone => "YouTube",
|
data/media_meta_hash.gemspec
CHANGED
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
|
13
13
|
spec.homepage = "https://github.com/daltonrenaldo/meta_media_hash"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
|
|
16
|
-
spec.add_dependency('video_info', '
|
|
16
|
+
spec.add_dependency('video_info', '1.5.0')
|
|
17
17
|
|
|
18
18
|
spec.files = `git ls-files`.split($/)
|
|
19
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
@@ -112,11 +112,11 @@ describe MediaMetaHash do
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
it "the :og key" do
|
|
115
|
-
@info_hash[:og].should include(:type, :video)
|
|
115
|
+
@info_hash[:og].should include(:title, :description, :image, :type, :video)
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
it "the :twitter key" do
|
|
119
|
-
@info_hash[:twitter].should include(:player, :card, :app)
|
|
119
|
+
@info_hash[:twitter].should include(:title, :description, :image, :player, :card, :app)
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
it "the :twitter => :player should be an array" do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: media_meta_hash
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Renaldo Pierre-Louis
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 1.5.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 1.5.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -115,9 +115,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
115
115
|
version: '0'
|
|
116
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
requirements:
|
|
118
|
-
- - "
|
|
118
|
+
- - ">="
|
|
119
119
|
- !ruby/object:Gem::Version
|
|
120
|
-
version:
|
|
120
|
+
version: '0'
|
|
121
121
|
requirements: []
|
|
122
122
|
rubyforge_project:
|
|
123
123
|
rubygems_version: 2.4.8
|