X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpleroma%2Fhelpers%2Fmedia_helper.ex;h=738adfcaa9d446e71dafc5aa7ab2b169dbf934dd;hb=d7262f7d2232343e47c2206b134a7d794e35c505;hp=d834b4a0782cc9ea8de449b64dbfca9f23112ce7;hpb=0bda85857e8f320ee7b91d8203fd621e1e2d5180;p=akkoma
diff --git a/lib/pleroma/helpers/media_helper.ex b/lib/pleroma/helpers/media_helper.ex
index d834b4a07..738adfcaa 100644
--- a/lib/pleroma/helpers/media_helper.ex
+++ b/lib/pleroma/helpers/media_helper.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Helpers.MediaHelper do
@@ -9,7 +9,17 @@ defmodule Pleroma.Helpers.MediaHelper do
alias Pleroma.HTTP
- @tmp_base "/tmp/pleroma-media_preview-pipe"
+ 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"),
@@ -60,6 +70,7 @@ defmodule Pleroma.Helpers.MediaHelper do
defp prepare_image_resize_args(_), do: {:error, :missing_options}
+ # Note: video thumbnail is intentionally not resized (always has original dimensions)
def video_framegrab(url) do
with executable when is_binary(executable) <- System.find_executable("ffmpeg"),
{:ok, env} <- HTTP.get(url, [], pool: :media),
@@ -103,7 +114,7 @@ defmodule Pleroma.Helpers.MediaHelper do
end
defp mkfifo do
- path = "#{@tmp_base}#{to_charlist(:erlang.phash2(self()))}"
+ path = Path.join(System.tmp_dir!(), "pleroma-media-preview-pipe-#{Ecto.UUID.generate()}")
case System.cmd("mkfifo", [path]) do
{_, 0} ->