121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# File 'lib/libertree/embedding/custom-providers.rb', line 121
def self.get(url)
return unless url =~ self.format
type = $1
uri = URI.parse(url)
Timeout.timeout(10) do
Net::HTTP.start(uri.host) do |http|
resp = http.get(uri.path)
html = Nokogiri::HTML(resp.body)
node = html.xpath("//meta[@property='og:video']/@content")
if node.empty?
raise Libertree::Embedding::Error, "failed to find embedding code"
else
if node.text.match(/#{type}=(\d+)/)
"<iframe width=\"400\" height=\"100\" frameborder=\"0\" allowtransparency=\"true\" src=\"https://bandcamp.com/EmbeddedPlayer/size=venti/#{type}=#{$1}\"></iframe>"
else
raise Libertree::Embedding::Error, "failed to find #{type} id"
end
end
end
end
end
|