From 9b6b5ac196d9a2defb74902bffad67505b0de5c5 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 18 May 2021 15:33:33 -0500 Subject: Rename upload filter to AnalyzeMetadata --- lib/pleroma/upload/filter/analyze_metadata.ex | 45 +++++++++++++++++++++++++++ lib/pleroma/upload/filter/set_meta.ex | 45 --------------------------- 2 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 lib/pleroma/upload/filter/analyze_metadata.ex delete mode 100644 lib/pleroma/upload/filter/set_meta.ex (limited to 'lib') diff --git a/lib/pleroma/upload/filter/analyze_metadata.ex b/lib/pleroma/upload/filter/analyze_metadata.ex new file mode 100644 index 000000000..8c23076d4 --- /dev/null +++ b/lib/pleroma/upload/filter/analyze_metadata.ex @@ -0,0 +1,45 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.AnalyzeMetadata do + @moduledoc """ + Extracts metadata about the upload, such as width/height + """ + require Logger + + @behaviour Pleroma.Upload.Filter + + @spec filter(Pleroma.Upload.t()) :: + {:ok, :filtered, Pleroma.Upload.t()} | {:ok, :noop} | {:error, String.t()} + def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _} = upload) do + try do + image = + file + |> Mogrify.open() + |> Mogrify.verbose() + + upload = + upload + |> Map.put(:width, image.width) + |> Map.put(:height, image.height) + |> Map.put(:blurhash, get_blurhash(file)) + + {:ok, :filtered, upload} + rescue + e in ErlangError -> + Logger.warn("#{__MODULE__}: #{inspect(e)}") + {:ok, :noop} + end + end + + def filter(_), do: {:ok, :noop} + + defp get_blurhash(file) do + with {:ok, blurhash} <- :eblurhash.magick(file) do + blurhash + else + _ -> nil + end + end +end diff --git a/lib/pleroma/upload/filter/set_meta.ex b/lib/pleroma/upload/filter/set_meta.ex deleted file mode 100644 index 81c48228a..000000000 --- a/lib/pleroma/upload/filter/set_meta.ex +++ /dev/null @@ -1,45 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2021 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Upload.Filter.SetMeta do - @moduledoc """ - Extracts metadata about the upload, such as width/height - """ - require Logger - - @behaviour Pleroma.Upload.Filter - - @spec filter(Pleroma.Upload.t()) :: - {:ok, :filtered, Pleroma.Upload.t()} | {:ok, :noop} | {:error, String.t()} - def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _} = upload) do - try do - image = - file - |> Mogrify.open() - |> Mogrify.verbose() - - upload = - upload - |> Map.put(:width, image.width) - |> Map.put(:height, image.height) - |> Map.put(:blurhash, get_blurhash(file)) - - {:ok, :filtered, upload} - rescue - e in ErlangError -> - Logger.warn("#{__MODULE__}: #{inspect(e)}") - {:ok, :noop} - end - end - - def filter(_), do: {:ok, :noop} - - defp get_blurhash(file) do - with {:ok, blurhash} <- :eblurhash.magick(file) do - blurhash - else - _ -> nil - end - end -end -- cgit v1.2.3