projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' into stable
[akkoma]
/
lib
/
pleroma
/
helpers
/
media_helper.ex
diff --git
a/lib/pleroma/helpers/media_helper.ex
b/lib/pleroma/helpers/media_helper.ex
index b6f35a24bb62109920358c4d1d6e99eb8ccf1771..cb95d0e68c45dee9c5aa4a02919c4485ddd3f70e 100644
(file)
--- a/
lib/pleroma/helpers/media_helper.ex
+++ b/
lib/pleroma/helpers/media_helper.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Helpers.MediaHelper do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Helpers.MediaHelper do
@@
-9,10
+9,22
@@
defmodule Pleroma.Helpers.MediaHelper do
alias Pleroma.HTTP
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),
def image_resize(url, options) do
with executable when is_binary(executable) <- System.find_executable("convert"),
{:ok, args} <- prepare_image_resize_args(options),
- {:ok, env} <- HTTP.get(url, [],
pool: :media
),
+ {:ok, env} <- HTTP.get(url, [],
[]
),
{:ok, fifo_path} <- mkfifo() do
args = List.flatten([fifo_path, args])
run_fifo(fifo_path, env, executable, args)
{:ok, fifo_path} <- mkfifo() do
args = List.flatten([fifo_path, args])
run_fifo(fifo_path, env, executable, args)
@@
-61,7
+73,7
@@
defmodule Pleroma.Helpers.MediaHelper do
# 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"),
# 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
),
+ {:ok, env} <- HTTP.get(url, [],
[]
),
{:ok, fifo_path} <- mkfifo(),
args = [
"-y",
{:ok, fifo_path} <- mkfifo(),
args = [
"-y",
@@
-92,10
+104,10
@@
defmodule Pleroma.Helpers.MediaHelper do
args: args
])
args: args
])
- fifo =
Port.open(to_charlist(fifo_path), [:eof, :binary, :stream, :out
])
+ fifo =
File.open!(fifo_path, [:append, :binary
])
fix = Pleroma.Helpers.QtFastStart.fix(env.body)
fix = Pleroma.Helpers.QtFastStart.fix(env.body)
-
true = Port.command
(fifo, fix)
-
:erlang.port_
close(fifo)
+
IO.binwrite
(fifo, fix)
+
File.
close(fifo)
loop_recv(pid)
after
File.rm(fifo_path)
loop_recv(pid)
after
File.rm(fifo_path)