Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'logger'
- require 'open-uri'
- require 'hpricot'
- require 'uri'
- require 'base64'
- module EmbedHtml
- class Embeder
- attr_accessor :url
- attr_accessor :logger
- def initialize(url, logger=Logger.new($stdout))
- @logger = logger
- @url = url
- end
- def process
- @logger.info "downloading url: #{@url}"
- html = open(@url).read
- doc = Hpricot(html)
- doc.search("//img").each do |img|
- extension = img.attributes['src'].match(/\.(.+)$/)[1] rescue nil
- image_url = URI.join(@url, img.attributes['src'])
- @logger.info "downloading url: #{image_url}"
- data = open(image_url).read
- if data && extension
- data_b64 = Base64.encode64(data)
- img.attributes['src'] = "data:image/#{extension};base64,#{data_b64}"
- end
- end
- doc.to_html
- end
- end
- end
Add Comment
Please, Sign In to add comment