Class: Libertree::Embedding::CustomProviders::TED

Inherits:
Object
  • Object
show all
Defined in:
lib/libertree/embedding/custom-providers.rb

Class Method Summary collapse

Class Method Details

.formatObject



93
94
95
# File 'lib/libertree/embedding/custom-providers.rb', line 93

def self.format
  %r{http://www\.ted\.com/talks/.+\.html}
end

.get(url) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/libertree/embedding/custom-providers.rb', line 97

def self.get(url)
  return unless url =~ self.format

  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)
      e = html.css('#embedthisvideo')[0]
      if e
        return e.attr('value')
      else
        raise Libertree::Embedding::Error, "failed to find embedding code"
      end
    end
  end
end