Guest User

Untitled

a guest
May 26th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. require 'logger'
  2. require 'open-uri'
  3. require 'hpricot'
  4. require 'uri'
  5. require 'base64'
  6.  
  7. module EmbedHtml
  8. class Embeder
  9. attr_accessor :url
  10. attr_accessor :logger
  11.  
  12. def initialize(url, logger=Logger.new($stdout))
  13. @logger = logger
  14. @url = url
  15. end
  16.  
  17. def process
  18. @logger.info "downloading url: #{@url}"
  19. html = open(@url).read
  20. doc = Hpricot(html)
  21. doc.search("//img").each do |img|
  22. extension = img.attributes['src'].match(/\.(.+)$/)[1] rescue nil
  23. image_url = URI.join(@url, img.attributes['src'])
  24. @logger.info "downloading url: #{image_url}"
  25. data = open(image_url).read
  26.  
  27. if data && extension
  28. data_b64 = Base64.encode64(data)
  29. img.attributes['src'] = "data:image/#{extension};base64,#{data_b64}"
  30. end
  31. end
  32. doc.to_html
  33. end
  34.  
  35. end
  36. end
Add Comment
Please, Sign In to add comment