aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/application.ex18
-rw-r--r--lib/pleroma/helpers/media_helper.ex12
2 files changed, 29 insertions, 1 deletions
diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex
index 00ec79a2a..d7d8e423e 100644
--- a/lib/pleroma/application.ex
+++ b/lib/pleroma/application.ex
@@ -268,7 +268,8 @@ defmodule Pleroma.Application do
with true <- filter in filters,
false <- Pleroma.Utils.command_available?(command_required) do
Logger.error(
- "#{filter} is specified in list of Pleroma.Upload filters, but the #{command_required} command is not found"
+ "#{filter} is specified in list of Pleroma.Upload filters, but the " <>
+ "#{command_required} command is not found"
)
end
end
@@ -276,5 +277,20 @@ defmodule Pleroma.Application do
check_filter.(Pleroma.Upload.Filters.Exiftool, "exiftool")
check_filter.(Pleroma.Upload.Filters.Mogrify, "mogrify")
check_filter.(Pleroma.Upload.Filters.Mogrifun, "mogrify")
+
+ with true <- Config.get([:media_preview_proxy, :enabled]),
+ missing_graphics_tools = Pleroma.Helpers.MediaHelper.missing_dependencies(),
+ [] <- missing_graphics_tools do
+ :noop
+ else
+ false ->
+ :noop
+
+ missing_graphics_tools ->
+ Logger.error(
+ "The following dependencies required by Media preview proxy " <>
+ "(which is currently enabled) are not installed: #{inspect(missing_graphics_tools)}"
+ )
+ end
end
end
diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex
index b6f35a24b..6b799173e 100644
--- a/lib/pleroma/helpers/media_helper.ex
+++ b/lib/pleroma/helpers/media_helper.ex
@@ -9,6 +9,18 @@ defmodule Pleroma.Helpers.MediaHelper do
alias Pleroma.HTTP
+ require Logger
+
+ def missing_dependencies do
+ Enum.reduce([imagemagick: "convert", ffmpeg: "ffmpeg"], [], fn {sym, executable}, acc ->
+ if Pleroma.Utils.command_available?(executable) do
+ acc
+ else
+ [sym | acc]
+ end
+ end)
+ end
+
def image_resize(url, options) do
with executable when is_binary(executable) <- System.find_executable("convert"),
{:ok, args} <- prepare_image_resize_args(options),