Use 'reduce_cooked' API instead of a plugin style

This commit is contained in:
Régis Hanol 2018-05-09 19:39:17 +02:00
parent 6a006b3646
commit a74cfd1418

View File

@ -33,18 +33,18 @@ end
after_initialize do after_initialize do
Email::Styles.register_plugin_style do |fragment| on(:reduce_cooked) do |fragment|
# YouTube onebox can't go in emails, so replace them with clickable links fragment.css(".lazyYT").each do |yt|
fragment.css('.lazyYT').each do |i|
begin begin
src = "https://www.youtube.com/embed/#{i['data-youtube-id']}?autoplay=1&#{i['data-parameters']}" youtube_id = yt["data-youtube-id"]
src_uri = URI(src) parameters = yt["data-parameters"]
display_src = "https://#{src_uri.host}#{src_uri.path}" uri = URI("https://www.youtube.com/embed/#{youtube_id}?autoplay=1&#{parameters}")
i.replace "<p><a href='#{src_uri.to_s}'>#{display_src}</a><p>" yt.replace %{<p><a href="#{uri.to_s}">https://#{uri.host}#{uri.path}</a></p>}
rescue URI::InvalidURIError rescue URI::InvalidURIError
# If the URL is weird, remove it # remove any invalid/weird URIs
i.remove yt.remove
end end
end end
end end
end end