diff options
author | kaniini <nenolod@gmail.com> | 2018-11-17 16:41:09 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2018-11-17 16:41:09 +0000 |
commit | 05967472f296fc782c15f0d8ebbeaeadb03b0f8c (patch) | |
tree | 644c103c3e0608e017679bd52e64a12bd2689890 | |
parent | e4f57f89de0ac947393362b665cb72eb9c0a35b0 (diff) | |
parent | 59e079f641c2aed70a698fdcf4908a9f31a959f2 (diff) | |
download | pleroma-05967472f296fc782c15f0d8ebbeaeadb03b0f8c.tar.gz |
Merge branch 'feature/uploader-mdii' into 'develop'
Feature / MDII Uploader
See merge request pleroma/pleroma!454
-rw-r--r-- | config/config.exs | 4 | ||||
-rw-r--r-- | lib/pleroma/uploaders/mdii.ex | 26 |
2 files changed, 30 insertions, 0 deletions
diff --git a/config/config.exs b/config/config.exs index 9cc558564..af0fdca9a 100644 --- a/config/config.exs +++ b/config/config.exs @@ -23,6 +23,10 @@ config :pleroma, Pleroma.Uploaders.S3, public_endpoint: "https://s3.amazonaws.com", force_media_proxy: false +config :pleroma, Pleroma.Uploaders.MDII, + cgi: "https://mdii.sakura.ne.jp/mdii-post.cgi", + files: "https://mdii.sakura.ne.jp" + config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"] config :pleroma, :uri_schemes, 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 |