discourse/lib/onebox/engine/wistia_onebox.rb
Ted Johansson 60e624e768
DEV: Replace custom Onebox blank implementation with ActiveSupport (#23827)
We have a custom implementation of #blank? in our Onebox helpers. This is likely a legacy from when Onebox was a standalone gem. This change replaces all usages with respective incarnations of #blank?, #present?, and #presence from ActiveSupport. It changes a bunch of "unless blank" to "if present" as well.
2023-10-07 19:54:26 +02:00

49 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Onebox
module Engine
class WistiaOnebox
include Engine
include StandardEmbed
matches_regexp(%r{https?://(.+)?(wistia.com|wi.st)/(medias|embed)/.*})
requires_iframe_origins("https://fast.wistia.com", "https://fast.wistia.net")
always_https
def to_html
oembed = get_oembed
extracted_url = oembed.html.match(/iframe\ src\=\"(.*?)\"/)
if extracted_url
iframe_src = extracted_url[1]
<<~HTML
<iframe
src="#{iframe_src}"
width="#{oembed.width}"
height="#{oembed.height}"
title="#{oembed.title}"
frameborder="0"
allowfullscreen
></iframe>
HTML
else
oembed.html
end
end
def placeholder_html
oembed = get_oembed
return if oembed.thumbnail_url.blank?
"<img src='#{oembed.thumbnail_url}' #{oembed.title_attr}>"
end
private
def get_oembed_url
"https://fast.wistia.com/oembed?embedType=iframe&url=#{url}"
end
end
end
end