From 61675938811a8f2121c857f285d31bd4c7ef3336 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 10 Jul 2020 16:46:26 -0500 Subject: Support Exiftool for stripping EXIF data We really only want to strip location data anyway, and mogrify strips color profiles. --- lib/pleroma/upload/filter/exiftool.ex | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 lib/pleroma/upload/filter/exiftool.ex (limited to 'lib') diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex new file mode 100644 index 000000000..833d8cab4 --- /dev/null +++ b/lib/pleroma/upload/filter/exiftool.ex @@ -0,0 +1,17 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.Exiftool do + @behaviour Pleroma.Upload.Filter + + @type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()} + @type conversions :: conversion() | [conversion()] + + def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do + System.cmd("exiftool", ["-overwrite_original", "-gps:all=", file], parallelism: true) + :ok + end + + def filter(_), do: :ok +end -- cgit v1.2.3 From 9e4567267443b801ab2f4f58f3897b2834387a80 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 10 Jul 2020 17:07:28 -0500 Subject: Add a moduledoc --- lib/pleroma/upload/filter/exiftool.ex | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'lib') diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex index 833d8cab4..eb199709a 100644 --- a/lib/pleroma/upload/filter/exiftool.ex +++ b/lib/pleroma/upload/filter/exiftool.ex @@ -3,6 +3,10 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Upload.Filter.Exiftool do + @moduledoc """ + Strips GPS related EXIF tags and overwrites the file in place. + Also strips or replaces filesystem metadata e.g., timestamps. + """ @behaviour Pleroma.Upload.Filter @type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()} -- cgit v1.2.3 From b329f05ed63657aa19b227b9b919662dad56ecae Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 10 Jul 2020 17:08:54 -0500 Subject: Remove unused @types --- lib/pleroma/upload/filter/exiftool.ex | 3 --- 1 file changed, 3 deletions(-) (limited to 'lib') diff --git a/lib/pleroma/upload/filter/exiftool.ex b/lib/pleroma/upload/filter/exiftool.ex index eb199709a..c7fb6aefa 100644 --- a/lib/pleroma/upload/filter/exiftool.ex +++ b/lib/pleroma/upload/filter/exiftool.ex @@ -9,9 +9,6 @@ defmodule Pleroma.Upload.Filter.Exiftool do """ @behaviour Pleroma.Upload.Filter - @type conversion :: action :: String.t() | {action :: String.t(), opts :: String.t()} - @type conversions :: conversion() | [conversion()] - def filter(%Pleroma.Upload{tempfile: file, content_type: "image" <> _}) do System.cmd("exiftool", ["-overwrite_original", "-gps:all=", file], parallelism: true) :ok -- cgit v1.2.3