discourse/lib/onebox/engine/steam_store_onebox.rb
2023-01-09 12:10:19 +00:00

42 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module Onebox
module Engine
class SteamStoreOnebox
include Engine
include StandardEmbed
always_https
matches_regexp(%r{^https?://store\.steampowered\.com/app/\d+})
requires_iframe_origins "https://store.steampowered.com"
def placeholder_html
og = get_opengraph
<<-HTML
<div style='width:100%; height:190px; background-color:#262626; color:#9e9e9e; margin:15px 0;'>
<div style='padding:10px'>
<h3 style='color:#fff; margin:10px 0 10px 5px;'>#{og.title}</h3>
<img src='#{og.image}' style='float:left; max-width:184px; margin:5px 15px 0 5px'/>
<p>#{og.description}</p>
</div>
</div>
HTML
end
def to_html
iframe_url = @url[%r{https?://store\.steampowered\.com/app/\d+}].gsub("/app/", "/widget/")
escaped_src = ::Onebox::Helpers.normalize_url_for_output(iframe_url)
<<-HTML
<iframe
src='#{escaped_src}'
frameborder='0'
width='100%'
height='190'
></iframe>
HTML
end
end
end
end