aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2018-11-17 16:41:09 +0000
committerkaniini <nenolod@gmail.com>2018-11-17 16:41:09 +0000
commit05967472f296fc782c15f0d8ebbeaeadb03b0f8c (patch)
tree644c103c3e0608e017679bd52e64a12bd2689890 /lib
parente4f57f89de0ac947393362b665cb72eb9c0a35b0 (diff)
parent59e079f641c2aed70a698fdcf4908a9f31a959f2 (diff)
downloadpleroma-05967472f296fc782c15f0d8ebbeaeadb03b0f8c.tar.gz
Merge branch 'feature/uploader-mdii' into 'develop'
Feature / MDII Uploader See merge request pleroma/pleroma!454
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/uploaders/mdii.ex26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/pleroma/uploaders/mdii.ex b/lib/pleroma/uploaders/mdii.ex
new file mode 100644
index 000000000..a9d52b0dc
--- /dev/null
+++ b/lib/pleroma/uploaders/mdii.ex
@@ -0,0 +1,26 @@
+defmodule Pleroma.Uploaders.MDII do
+ alias Pleroma.Config
+
+ @behaviour Pleroma.Uploaders.Uploader
+
+ @httpoison Application.get_env(:pleroma, :httpoison)
+
+ def put_file(name, uuid, path, content_type, should_dedupe) do
+ cgi = Pleroma.Config.get([Pleroma.Uploaders.MDII, :cgi])
+ files = Pleroma.Config.get([Pleroma.Uploaders.MDII, :files])
+
+ {:ok, file_data} = File.read(path)
+
+ extension = String.split(name, ".") |> List.last()
+ query = "#{cgi}?#{extension}"
+
+ with {:ok, %{status_code: 200, body: body}} <- @httpoison.post(query, file_data) do
+ File.rm!(path)
+ remote_file_name = String.split(body) |> List.first()
+ public_url = "#{files}/#{remote_file_name}.#{extension}"
+ {:ok, public_url}
+ else
+ _ -> Pleroma.Uploaders.Local.put_file(name, uuid, path, content_type, should_dedupe)
+ end
+ end
+end