2019-07-25 22:34:46 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class UploadMarkdown
|
|
|
|
def initialize(upload)
|
|
|
|
@upload = upload
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_markdown(display_name: nil)
|
|
|
|
if FileHelper.is_supported_image?(@upload.original_filename)
|
2024-05-05 04:48:16 +08:00
|
|
|
image_markdown(display_name: display_name)
|
2022-02-14 13:48:27 +08:00
|
|
|
elsif FileHelper.is_supported_playable_media?(@upload.original_filename)
|
2024-05-05 04:48:16 +08:00
|
|
|
playable_media_markdown(display_name: display_name)
|
2019-07-25 22:34:46 +08:00
|
|
|
else
|
|
|
|
attachment_markdown(display_name: display_name)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2024-05-05 04:48:16 +08:00
|
|
|
def image_markdown(display_name: nil)
|
|
|
|
display_name ||= @upload.original_filename
|
|
|
|
"![#{display_name}|#{@upload.width}x#{@upload.height}](#{@upload.short_url})"
|
2019-07-25 22:34:46 +08:00
|
|
|
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
|
2022-02-14 13:48:27 +08:00
|
|
|
|
2024-05-05 04:48:16 +08:00
|
|
|
def playable_media_markdown(display_name: nil)
|
2022-02-14 13:48:27 +08:00
|
|
|
type =
|
|
|
|
if FileHelper.is_supported_audio?(@upload.original_filename)
|
|
|
|
"audio"
|
|
|
|
elsif FileHelper.is_supported_video?(@upload.original_filename)
|
|
|
|
"video"
|
|
|
|
end
|
|
|
|
return attachment_markdown if !type
|
2024-05-05 04:48:16 +08:00
|
|
|
display_name ||= @upload.original_filename
|
|
|
|
"![#{display_name}|#{type}](#{@upload.short_url})"
|
2022-02-14 13:48:27 +08:00
|
|
|
end
|
2019-07-25 22:34:46 +08:00
|
|
|
end
|