Class: PotMarkdown::Filters::SanitizeIframeFilter

Inherits:
HTML::Pipeline::Filter
  • Object
show all
Defined in:
lib/pot_markdown/filters/sanitize_iframe_filter.rb

Constant Summary collapse

SAFE_IFRAME_URL =
[
  # youtube
  %r{\Ahttps://www.youtube.com/embed/[^/]+\z},

  # nicovideo
  %r{\Ahttps?://ext.nicovideo.jp/thumb/[^/]+\z},

  # nicolive
  %r{\Ahttps?://live.nicovideo.jp/embed/.+\z},

  # nicoseiga
  %r{\Ahttps?://ext.seiga.nicovideo.jp/thumb/[^/]+\z},

  # niconisolid
  %r{\Ahttps?://3d.nicovideo.jp/externals/(?:widget|embedded)\?id=td\d+\z},

  # niconare
  %r{\Ahttps?://niconare.nicovideo.jp/embed_works/kn\d+\z},

  # slideshare
  %r{\A(https?:)?//www.slideshare.net/slideshow/embed_code/key/[^/]+\z},

  # plicy
  %r{\Ahttps?://plicy.net/GameEmbed/\d+\z}
].freeze

Instance Method Summary collapse

Instance Method Details

#callObject



7
8
9
10
11
12
# File 'lib/pot_markdown/filters/sanitize_iframe_filter.rb', line 7

def call
  doc.xpath('.//iframe').each do |element|
    element.remove unless safe?(element)
  end
  doc
end