Assorted fixes.
[akkoma] / lib / pleroma / uploaders / local.ex
index 7e5d7a59bf746d1c278522b0c0288ec7ed9370bf..d96481c8d48707cc7afd808c01bbf5a2df737a1f 100644 (file)
@@ -1,7 +1,10 @@
 defmodule Pleroma.Uploaders.Local do
-  def put_file(name, uuid, file, content_type) do
+  @behaviour Pleroma.Uploaders.Uploader
 
-    upload_path = get_upload_path(uuid, should_dedupe)
+  alias Pleroma.Web
+
+  def put_file(name, uuid, tmpfile, _content_type, should_dedupe) do
+    upload_folder = get_upload_path(uuid, should_dedupe)
     url_path = get_url(name, uuid, should_dedupe)
 
     File.mkdir_p!(upload_folder)
@@ -9,12 +12,12 @@ defmodule Pleroma.Uploaders.Local do
     result_file = Path.join(upload_folder, name)
 
     if File.exists?(result_file) do
-      File.rm!(file.path)
+      File.rm!(tmpfile)
     else
-      File.cp!(file.path, result_file)
+      File.cp!(tmpfile, result_file)
     end
 
-    url_path
+    {:ok, url_path}
   end
 
   def upload_path do
@@ -39,6 +42,10 @@ defmodule Pleroma.Uploaders.Local do
   end
 
   defp url_for(file) do
-    "#{Web.base_url()}/media/#{file}"
+    settings = Application.get_env(:pleroma, Pleroma.Uploaders.Local)
+
+    Keyword.get(settings, :uploads_url)
+    |> String.replace("{{file}}", file)
+    |> String.replace("{{base_url}}", Web.base_url())
   end
 end