mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Make attachment markdown reusable
This commit is contained in:
24
lib/discourse_markdown.rb
Normal file
24
lib/discourse_markdown.rb
Normal file
@@ -0,0 +1,24 @@
|
||||
# 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)
|
||||
""
|
||||
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,12 +5,11 @@ require_dependency "new_post_manager"
|
||||
require_dependency "html_to_markdown"
|
||||
require_dependency "plain_text_to_markdown"
|
||||
require_dependency "upload_creator"
|
||||
require_dependency "discourse_markdown"
|
||||
|
||||
module Email
|
||||
|
||||
class Receiver
|
||||
include ActionView::Helpers::NumberHelper
|
||||
|
||||
# If you add a new error, you need to
|
||||
# * add it to Email::Processor#handle_failure()
|
||||
# * add text to server.en.yml (parent key: "emails.incoming.errors")
|
||||
@@ -1035,19 +1034,16 @@ module Email
|
||||
|
||||
InlineUploads.match_img(raw) do |match, src, replacement, _|
|
||||
if src == upload.url
|
||||
raw = raw.sub(
|
||||
match,
|
||||
""
|
||||
)
|
||||
raw = raw.sub(match, DiscourseMarkdown.image_markdown(upload))
|
||||
end
|
||||
end
|
||||
elsif raw[/\[image:.*?\d+[^\]]*\]/i]
|
||||
raw.sub!(/\[image:.*?\d+[^\]]*\]/i, attachment_markdown(upload))
|
||||
raw.sub!(/\[image:.*?\d+[^\]]*\]/i, DiscourseMarkdown.upload_markdown(upload))
|
||||
else
|
||||
raw << "\n\n#{attachment_markdown(upload)}\n\n"
|
||||
raw << "\n\n#{DiscourseMarkdown.upload_markdown(upload)}\n\n"
|
||||
end
|
||||
else
|
||||
raw << "\n\n#{attachment_markdown(upload)}\n\n"
|
||||
raw << "\n\n#{DiscourseMarkdown.upload_markdown(upload)}\n\n"
|
||||
end
|
||||
else
|
||||
rejected_attachments << upload
|
||||
@@ -1082,14 +1078,6 @@ module Email
|
||||
Email::Sender.new(client_message, :email_reject_attachment).send
|
||||
end
|
||||
|
||||
def attachment_markdown(upload)
|
||||
if FileHelper.is_supported_image?(upload.original_filename)
|
||||
""
|
||||
else
|
||||
"[#{upload.original_filename}|attachment](#{upload.short_url}) (#{number_to_human_size(upload.filesize)})"
|
||||
end
|
||||
end
|
||||
|
||||
def create_post(options = {})
|
||||
options[:via_email] = true
|
||||
options[:raw_email] = @raw_email
|
||||
|
||||
Reference in New Issue
Block a user