lib/onebox/engine/imgur_onebox.rb in onebox-1.8.81 vs lib/onebox/engine/imgur_onebox.rb in onebox-1.8.82

- old
+ new

@@ -1,65 +1,65 @@ -module Onebox - module Engine - class ImgurOnebox - include Engine - include StandardEmbed - - matches_regexp(/^https?:\/\/(www\.)?imgur\.com/) - always_https - - def to_html - og = get_opengraph - return video_html(og) if !og.video_secure_url.nil? - return album_html(og) if is_album? - return image_html(og) if !og.image.nil? - nil - end - - private - - def video_html(og) - <<-HTML - <video width='#{og.video_width}' height='#{og.video_height}' #{og.title_attr} controls loop> - <source src='#{og.video_secure_url}' type='video/mp4'> - <source src='#{og.video_secure_url.gsub('mp4', 'webm')}' type='video/webm'> - </video> - HTML - end - - def album_html(og) - escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) - album_title = "[Album] #{og.title}" - - <<-HTML - <div class='onebox imgur-album'> - <a href='#{escaped_url}' target='_blank'> - <span class='outer-box' style='width:#{og.image_width}px'> - <span class='inner-box'> - <span class='album-title'>#{album_title}</span> - </span> - </span> - <img src='#{og.get_secure_image}' #{og.title_attr} height='#{og.image_height}' width='#{og.image_width}'> - </a> - </div> - HTML - end - - def is_album? - response = Onebox::Helpers.fetch_response("https://api.imgur.com/oembed.json?url=#{url}") rescue "{}" - oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response)) - imgur_data_id = Nokogiri::HTML(oembed_data[:html]).xpath("//blockquote").attr("data-id") - imgur_data_id.to_s[/a\//] - end - - def image_html(og) - escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) - - <<-HTML - <a href='#{escaped_url}' target='_blank' class="onebox"> - <img src='#{og.get_secure_image}' #{og.title_attr} alt='Imgur' height='#{og.image_height}' width='#{og.image_width}'> - </a> - HTML - end - end - end -end +module Onebox + module Engine + class ImgurOnebox + include Engine + include StandardEmbed + + matches_regexp(/^https?:\/\/(www\.)?imgur\.com/) + always_https + + def to_html + og = get_opengraph + return video_html(og) if !og.video_secure_url.nil? + return album_html(og) if is_album? + return image_html(og) if !og.image.nil? + nil + end + + private + + def video_html(og) + <<-HTML + <video width='#{og.video_width}' height='#{og.video_height}' #{og.title_attr} controls loop> + <source src='#{og.video_secure_url}' type='video/mp4'> + <source src='#{og.video_secure_url.gsub('mp4', 'webm')}' type='video/webm'> + </video> + HTML + end + + def album_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + album_title = "[Album] #{og.title}" + + <<-HTML + <div class='onebox imgur-album'> + <a href='#{escaped_url}' target='_blank'> + <span class='outer-box' style='width:#{og.image_width}px'> + <span class='inner-box'> + <span class='album-title'>#{album_title}</span> + </span> + </span> + <img src='#{og.get_secure_image}' #{og.title_attr} height='#{og.image_height}' width='#{og.image_width}'> + </a> + </div> + HTML + end + + def is_album? + response = Onebox::Helpers.fetch_response("https://api.imgur.com/oembed.json?url=#{url}") rescue "{}" + oembed_data = Onebox::Helpers.symbolize_keys(::MultiJson.load(response)) + imgur_data_id = Nokogiri::HTML(oembed_data[:html]).xpath("//blockquote").attr("data-id") + imgur_data_id.to_s[/a\//] + end + + def image_html(og) + escaped_url = ::Onebox::Helpers.normalize_url_for_output(url) + + <<-HTML + <a href='#{escaped_url}' target='_blank' class="onebox"> + <img src='#{og.get_secure_image}' #{og.title_attr} alt='Imgur' height='#{og.image_height}' width='#{og.image_width}'> + </a> + HTML + end + end + end +end