FIX: skip markdown conversion for hotlinked non image urls

This commit is contained in:
Vinoth Kannan 2019-07-16 18:05:17 +05:30
parent 1308919a3d
commit 3840ace978
3 changed files with 30 additions and 0 deletions

View File

@ -73,6 +73,9 @@ class InlineUploads
markdown.scan(/(\n{2,}|\A)#{regexp}$/) do |match|
if match[1].present?
extension = match[1].split(".")[-1].downcase
next if FileHelper.supported_images.exclude?(extension)
index = $~.offset(2)[0]
indexes << index
raw_matches << [match[1], match[1], +"![](#{PLACEHOLDER})", index]
@ -120,6 +123,11 @@ class InlineUploads
.sort { |a, b| a[3] <=> b[3] }
.each do |match, link, replace_with, _index|
if match == link
extension = match.split(".")[-1].downcase
next if FileHelper.supported_images.exclude?(extension)
end
node_info = link_occurences.shift
next unless node_info&.dig(:is_valid)

View File

@ -21,6 +21,15 @@ Fabricator(:upload) do
extension "png"
end
Fabricator(:video_upload, from: :upload) do
original_filename "video.mp4"
width nil
height nil
thumbnail_width nil
thumbnail_height nil
extension "mp4"
end
Fabricator(:upload_s3, from: :upload) do
url do |attrs|
sequence(:url) do |n|

View File

@ -228,6 +228,19 @@ RSpec.describe InlineUploads do
MD
end
it "should not correct non image URLs to the short url and paths" do
SiteSetting.authorized_extensions = "mp4"
upload4 = Fabricate(:video_upload)
md = <<~MD
#{GlobalSetting.cdn_url}#{upload4.url}
MD
expect(InlineUploads.process(md)).to eq(<<~MD)
#{GlobalSetting.cdn_url}#{upload4.url}
MD
end
it "should correct img tags with uppercase upload extension" do
md = <<~MD
test<img src="#{upload.url.sub(".png", ".PNG")}">