Merge branch 'freebsd-docs' into 'develop'
[akkoma] / lib / pleroma / upload / filter / mogrifun.ex
index 7d95577a4a8029b1d941432de0ed35eb6dbf1136..c8fa7b19084fce6ebd7ff1be4ba193cc114a0446 100644 (file)
@@ -6,6 +6,10 @@ defmodule Pleroma.Upload.Filter.Mogrifun do
   @behaviour Pleroma.Upload.Filter
   alias Pleroma.Upload.Filter
 
+  @moduledoc """
+  This module is just an example of an Upload filter. It's not supposed to be used in production.
+  """
+
   @filters [
     {"implode", "1"},
     {"-raise", "20"},
@@ -34,10 +38,15 @@ defmodule Pleroma.Upload.Filter.Mogrifun do
     [{"fill", "yellow"}, {"tint", "40"}]
   ]
 
+  @spec filter(Pleroma.Upload.t()) :: :ok | {:error, String.t()}
   def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do
-    Filter.Mogrify.do_filter(file, [Enum.random(@filters)])
-
-    :ok
+    try do
+      Filter.Mogrify.do_filter(file, [Enum.random(@filters)])
+      :ok
+    rescue
+      _e in ErlangError ->
+        {:error, "mogrify command not found"}
+    end
   end
 
   def filter(_), do: :ok