Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103747
strip_location.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
strip_location.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Upload.Filter.Exiftool.StripLocation
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
# Formats not compatible with exiftool at this time
def
filter
(%
Pleroma.Upload
{
content_type
:
"image/heic"
}),
do
:
{
:ok
,
:noop
}
def
filter
(%
Pleroma.Upload
{
content_type
:
"image/webp"
}),
do
:
{
:ok
,
:noop
}
def
filter
(%
Pleroma.Upload
{
content_type
:
"image/svg"
<>
_
}),
do
:
{
:ok
,
:noop
}
def
filter
(%
Pleroma.Upload
{
tempfile
:
file
,
content_type
:
"image"
<>
_
})
do
try
do
case
System
.
cmd
(
"exiftool"
,
[
"-overwrite_original"
,
"-gps:all="
,
"-png:all="
,
file
],
parallelism
:
true
)
do
{
_response
,
0
}
->
{
:ok
,
:filtered
}
{
error
,
1
}
->
{
:error
,
error
}
end
rescue
e
in
ErlangError
->
{
:error
,
"
#{
__MODULE__
}
:
#{
inspect
(
e
)
}
"
}
end
end
def
filter
(
_
),
do
:
{
:ok
,
:noop
}
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Tue, Jan 20, 2:01 PM (5 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
966595
Default Alt Text
strip_location.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment