aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlambda <pleromagit@rogerbraun.net>2018-06-14 19:11:30 +0000
committerlambda <pleromagit@rogerbraun.net>2018-06-14 19:11:30 +0000
commitde20c8d6208563f50c1f8af9a2ee8b14c7663dad (patch)
treeacaf520b2f0b6a80f7f5c596309a2cb749765685 /lib
parent1c676b75738ec8448132b2cbcfbb71e075bf07b2 (diff)
parent0a95b5594b654dbec73a9e50e340f4975aa3e8e5 (diff)
downloadpleroma-de20c8d6208563f50c1f8af9a2ee8b14c7663dad.tar.gz
Merge branch 'fix/missing-file-extension' into 'develop'
Add missing file extension if file does not have one See merge request pleroma/pleroma!222
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/upload.ex29
1 files changed, 24 insertions, 5 deletions
diff --git a/lib/pleroma/upload.ex b/lib/pleroma/upload.ex
index c7f11f380..43df0d418 100644
--- a/lib/pleroma/upload.ex
+++ b/lib/pleroma/upload.ex
@@ -86,10 +86,15 @@ defmodule Pleroma.Upload do
end
defp create_name(uuid, ext, type) do
- if type == "application/octet-stream" do
- String.downcase(Enum.join([uuid, ext], "."))
- else
- String.downcase(Enum.join([uuid, List.last(String.split(type, "/"))], "."))
+ case type do
+ "application/octet-stream" ->
+ String.downcase(Enum.join([uuid, ext], "."))
+
+ "audio/mpeg" ->
+ String.downcase(Enum.join([uuid, "mp3"], "."))
+
+ _ ->
+ String.downcase(Enum.join([uuid, List.last(String.split(type, "/"))], "."))
end
end
@@ -105,7 +110,21 @@ defmodule Pleroma.Upload do
if should_dedupe do
create_name(uuid, List.last(String.split(file.filename, ".")), type)
else
- file.filename
+ unless String.contains?(file.filename, ".") do
+ case type do
+ "image/png" -> file.filename <> ".png"
+ "image/jpeg" -> file.filename <> ".jpg"
+ "image/gif" -> file.filename <> ".gif"
+ "video/webm" -> file.filename <> ".webm"
+ "video/mp4" -> file.filename <> ".mp4"
+ "audio/mpeg" -> file.filename <> ".mp3"
+ "audio/ogg" -> file.filename <> ".ogg"
+ "audio/wav" -> file.filename <> ".wav"
+ _ -> file.filename
+ end
+ else
+ file.filename
+ end
end
end