Class: Libertree::Embedding::CustomProviders::FreeMusicArchive

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

Class Method Summary collapse

Class Method Details

.formatObject



45
46
47
# File 'lib/libertree/embedding/custom-providers.rb', line 45

def self.format
  %r{http://freemusicarchive\.org/music/.+}
end

.get(url) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/libertree/embedding/custom-providers.rb', line 49

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