summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2020-07-10 16:46:26 -0500
committerMark Felder <feld@FreeBSD.org>2020-07-10 16:46:26 -0500
commit61675938811a8f2121c857f285d31bd4c7ef3336 (patch)
treed2f0561244a701c5c663e7aee41068e5d5244e28 /lib
parentd6f67fa91b00b28d7be9f82bb300f9d650c73744 (diff)
downloadpleroma-61675938811a8f2121c857f285d31bd4c7ef3336.tar.gz
pleroma-61675938811a8f2121c857f285d31bd4c7ef3336.zip
Support Exiftool for stripping EXIF data
We really only want to strip location data anyway, and mogrify strips color profiles.
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/upload/filter/exiftool.ex17
1 files changed, 17 insertions, 0 deletions
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 <https://pleroma.social/>
+# 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