parent
2ba4de2d45
commit
fd12c414e7
|
@ -4,7 +4,7 @@ require 'csv'
|
||||||
require 'zip'
|
require 'zip'
|
||||||
require_dependency 'system_message'
|
require_dependency 'system_message'
|
||||||
require_dependency 'upload_creator'
|
require_dependency 'upload_creator'
|
||||||
require_dependency 'discourse_markdown'
|
require_dependency 'upload_markdown'
|
||||||
|
|
||||||
module Jobs
|
module Jobs
|
||||||
|
|
||||||
|
@ -405,7 +405,7 @@ module Jobs
|
||||||
SystemMessage.create_from_system_user(
|
SystemMessage.create_from_system_user(
|
||||||
@current_user,
|
@current_user,
|
||||||
:csv_export_succeeded,
|
:csv_export_succeeded,
|
||||||
download_link: DiscourseMarkdown.attachment_markdown(upload),
|
download_link: UploadMarkdown.new(upload).attachment_markdown,
|
||||||
export_title: export_title
|
export_title: export_title
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require_dependency "file_helper"
|
|
||||||
|
|
||||||
class DiscourseMarkdown
|
|
||||||
def self.upload_markdown(upload, display_name: nil)
|
|
||||||
if FileHelper.is_supported_image?(upload.original_filename)
|
|
||||||
image_markdown(upload)
|
|
||||||
else
|
|
||||||
attachment_markdown(upload, display_name: display_name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.image_markdown(upload)
|
|
||||||
"![#{upload.original_filename}|#{upload.width}x#{upload.height}](#{upload.short_url})"
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.attachment_markdown(upload, display_name: nil, with_filesize: true)
|
|
||||||
human_filesize = with_filesize ? " (#{upload.human_filesize})" : ""
|
|
||||||
display_name ||= upload.original_filename
|
|
||||||
|
|
||||||
"[#{display_name}|attachment](#{upload.short_url})#{human_filesize}"
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -5,7 +5,7 @@ require_dependency "new_post_manager"
|
||||||
require_dependency "html_to_markdown"
|
require_dependency "html_to_markdown"
|
||||||
require_dependency "plain_text_to_markdown"
|
require_dependency "plain_text_to_markdown"
|
||||||
require_dependency "upload_creator"
|
require_dependency "upload_creator"
|
||||||
require_dependency "discourse_markdown"
|
require_dependency "upload_markdown"
|
||||||
|
|
||||||
module Email
|
module Email
|
||||||
|
|
||||||
|
@ -1034,16 +1034,16 @@ module Email
|
||||||
|
|
||||||
InlineUploads.match_img(raw) do |match, src, replacement, _|
|
InlineUploads.match_img(raw) do |match, src, replacement, _|
|
||||||
if src == upload.url
|
if src == upload.url
|
||||||
raw = raw.sub(match, DiscourseMarkdown.image_markdown(upload))
|
raw = raw.sub(match, UploadMarkdown.new(upload).image_markdown)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elsif raw[/\[image:.*?\d+[^\]]*\]/i]
|
elsif raw[/\[image:.*?\d+[^\]]*\]/i]
|
||||||
raw.sub!(/\[image:.*?\d+[^\]]*\]/i, DiscourseMarkdown.upload_markdown(upload))
|
raw.sub!(/\[image:.*?\d+[^\]]*\]/i, UploadMarkdown.new(upload).to_markdown)
|
||||||
else
|
else
|
||||||
raw << "\n\n#{DiscourseMarkdown.upload_markdown(upload)}\n\n"
|
raw << "\n\n#{UploadMarkdown.new(upload).to_markdown}\n\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
raw << "\n\n#{DiscourseMarkdown.upload_markdown(upload)}\n\n"
|
raw << "\n\n#{UploadMarkdown.new(upload).to_markdown}\n\n"
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
rejected_attachments << upload
|
rejected_attachments << upload
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require_dependency "file_helper"
|
||||||
|
|
||||||
|
class UploadMarkdown
|
||||||
|
def initialize(upload)
|
||||||
|
@upload = upload
|
||||||
|
end
|
||||||
|
|
||||||
|
def to_markdown(display_name: nil)
|
||||||
|
if FileHelper.is_supported_image?(@upload.original_filename)
|
||||||
|
image_markdown
|
||||||
|
else
|
||||||
|
attachment_markdown(display_name: display_name)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def image_markdown
|
||||||
|
"![#{@upload.original_filename}|#{@upload.width}x#{@upload.height}](#{@upload.short_url})"
|
||||||
|
end
|
||||||
|
|
||||||
|
def attachment_markdown(display_name: nil, with_filesize: true)
|
||||||
|
human_filesize = with_filesize ? " (#{@upload.human_filesize})" : ""
|
||||||
|
display_name ||= @upload.original_filename
|
||||||
|
|
||||||
|
"[#{display_name}|attachment](#{@upload.short_url})#{human_filesize}"
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,7 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
require_dependency 'url_helper'
|
require_dependency 'url_helper'
|
||||||
require_dependency 'discourse_markdown'
|
require_dependency 'upload_markdown'
|
||||||
|
|
||||||
module ImportScripts
|
module ImportScripts
|
||||||
class Uploader
|
class Uploader
|
||||||
|
@ -40,15 +40,15 @@ module ImportScripts
|
||||||
end
|
end
|
||||||
|
|
||||||
def html_for_upload(upload, display_filename)
|
def html_for_upload(upload, display_filename)
|
||||||
DiscourseMarkdown.upload_markdown(upload, display_name: display_filename)
|
UploadMarkdown.new(upload).to_markdown(display_name: display_filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
def embedded_image_html(upload)
|
def embedded_image_html(upload)
|
||||||
DiscourseMarkdown.image_markdown(upload)
|
UploadMarkdown.new(upload).image_markdown
|
||||||
end
|
end
|
||||||
|
|
||||||
def attachment_html(upload, display_filename)
|
def attachment_html(upload, display_filename)
|
||||||
DiscourseMarkdown.attachment_markdown(upload, display_name: display_filename)
|
UploadMarkdown.new(upload).attachment_markdown(display_name: display_filename)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -376,10 +376,10 @@ describe Email::Sender do
|
||||||
fab!(:reply) do
|
fab!(:reply) do
|
||||||
raw = <<~RAW
|
raw = <<~RAW
|
||||||
Hello world!
|
Hello world!
|
||||||
#{DiscourseMarkdown.attachment_markdown(small_pdf)}
|
#{UploadMarkdown.new(small_pdf).attachment_markdown}
|
||||||
#{DiscourseMarkdown.attachment_markdown(large_pdf)}
|
#{UploadMarkdown.new(large_pdf).attachment_markdown}
|
||||||
#{DiscourseMarkdown.image_markdown(image)}
|
#{UploadMarkdown.new(image).image_markdown}
|
||||||
#{DiscourseMarkdown.attachment_markdown(csv_file)}
|
#{UploadMarkdown.new(csv_file).attachment_markdown}
|
||||||
RAW
|
RAW
|
||||||
reply = Fabricate(:post, raw: raw, topic: post.topic, user: Fabricate(:user))
|
reply = Fabricate(:post, raw: raw, topic: post.topic, user: Fabricate(:user))
|
||||||
reply.link_post_uploads
|
reply.link_post_uploads
|
||||||
|
|
Loading…
Reference in New Issue