discourse/lib/onebox/engine/pdf_onebox.rb

30 lines
593 B
Ruby

# frozen_string_literal: true
module Onebox
module Engine
class PdfOnebox
include Engine
include LayoutSupport
matches_regexp(%r{^(https?:)?//.*\.pdf(\?.*)?$}i)
always_https
private
def data
begin
size = Onebox::Helpers.fetch_content_length(@url)
rescue StandardError
raise "Unable to read pdf file: #{@url}"
end
{
link: link,
title: File.basename(uri.path),
filesize: size ? Onebox::Helpers.pretty_filesize(size.to_i) : nil,
}
end
end
end
end