# frozen_string_literal: true module Onebox module Engine class TiktokOnebox include Engine include StandardEmbed matches_regexp(%r{^https?://((?:m|www)\.)?tiktok\.com(?:/@(.+)\/video/|/v/)\d+(/\w+)?/?}) requires_iframe_origins "https://www.tiktok.com" always_https def placeholder_html <<-HTML <img src="#{oembed_data.thumbnail_url}" title="#{oembed_data.title}" style=" max-width: #{oembed_data.thumbnail_width / 2}px; max-height: #{oembed_data.thumbnail_height / 2}px;" > HTML end def to_html video_height = oembed_data.thumbnail_height < 1024 ? 998 : oembed_data.thumbnail_height height = (323.0 / 576) * video_height <<-HTML <iframe class="tiktok-onebox" src="https://www.tiktok.com/embed/v2/#{oembed_data.embed_product_id}" sandbox="allow-popups allow-popups-to-escape-sandbox allow-scripts allow-top-navigation allow-same-origin" frameborder="0" seamless="seamless" scrolling="no" style=" min-width: 323px; height: #{height}px; border: 4px solid #fff; border-top: 3px solid #fff; background-color: #fff; border-radius: 9px; " ></iframe> HTML end private def oembed_data @oembed_data = get_oembed end def get_oembed_url "https://www.tiktok.com/oembed?url=#{url}" end end end end