Lain Soykaf
c31fabdebd
Mogrify/Mogrifun: Asyncify
2025-02-25 17:08:21 +04:00
Lain Soykaf
ee291f08e8
AnonymizeFilename: Asyncify
2025-02-25 16:40:45 +04:00
Lain Soykaf
81ab906466
AnalyzeMetadata: Don't crash on grayscale image blurhash
2025-01-30 12:18:20 +04:00
Mark Felder
d2de251c4d
Pleroma.Upload.Filter.Dedupe: sharding directory structure
...
Dedupe now uses a three-level sharding directory structure to improve performance when many files are uploaded and stored on a filesystem instead of an object store. (note: Minio still affected as it still uses a traditional filesystem)
This does not help if you already have hundreds of thousands of files uploaded. The media URLs are permanently part of the activity so the files cannot be relocated. A motivated user could write a tool to move the files and perhaps write an Nginx or equivalent redirect to make the files still accessible, but that is beyond the scope of this change.
2024-10-29 16:00:18 -04:00
Lain Soykaf
6d4fb53206
StripLocation: Remove all PNG extra info to make sure that GPS data is gone.
2024-06-28 21:59:00 +04:00
Mark Felder
42c5f7c74e
Dialyzer: fix invalid @spec
...
The callback already defines the @spec and these do not match it.
lib/pleroma/upload/filter/exiftool/strip_location.ex:12:callback_spec_type_mismatch
The @spec return type does not match the expected return type
for filter/1 callback in Pleroma.Upload.Filter behaviour.
Actual:
@spec filter(...) :: {:ok, _}
Expected:
@spec filter(...) :: {:error, _} | {:ok, :filtered | :noop} | {:ok, :filtered, struct()}
2024-05-28 08:55:18 -04:00
Mark Felder
9896b64f54
Elixir 1.15: Chase the Logger.warn deprecation
2023-12-20 20:16:26 +00:00
Lain Soykaf
228966e6dd
Exiftool.ReadDescription: Remove wrong spec.
2023-12-12 11:09:54 +04:00
Lain Soykaf
ccc2adee41
Linting
2023-11-28 13:13:43 +04:00
Lain Soykaf
b3214be32f
AnayzeMetadata: Fix error case that would never match
2023-11-28 12:33:54 +04:00
Lain Soykaf
03db495e1d
AnalyzeMetadata: Switch to rinpatch_blurhash
2023-11-28 12:23:41 +04:00
Mark Felder
299c548b12
Prevent a blurhash failure from breaking all metadata collection
2023-11-23 16:15:53 -05:00
Mark Felder
88cc7e6a04
Resize images to 100 pixels before hashing
2023-11-17 11:06:31 -05:00
Mark Felder
0c6a54b37c
Upload.Filter.AnalyzeMetadata: Blurhash with a Rust NIF, and use Vix to retrieve image metadata
2023-11-17 10:26:00 -05:00
Mark Felder
a4b6e5613f
Revert "Add Pleroma.Upload.Filter.HeifToJpeg based on vips"
...
This reverts commit 31d4448ee61b4afac6aa23f8c0287d13aed411a1.
This functionality is not reliably working with vips/vix due to codec patent junk
2023-11-13 15:41:39 -05:00
Mark Felder
481b6ac0d5
Add Pleroma.Upload.Filter.HeifToJpeg based on vips
2023-11-13 15:41:39 -05:00
Mark Felder
9caa0b0be1
Add OnlyMedia Upload Filter to simplify restricting uploads to audio, image, and video types
2023-05-29 15:49:04 -04:00
tusooa
024bb27fc7
Ignores in exiftool read descriptions
2023-02-11 00:30:52 -05:00
Lain Soykaf
fe00fbfd54
B StripLocation: Add test, work for all svgs.
2023-01-05 11:29:06 -05:00
Dmytro Poltavchenko
5b4962165e
Added SVG to formats not compatible with exiftool
2023-01-05 11:26:57 -05:00
lain
e853cfe7c3
Revert "Merge branch 'copyright-bump' into 'develop'"
...
This reverts merge request !3825
2023-01-02 20:38:50 +00:00
marcin mikołajczak
10886eeaa2
Bump copyright year
...
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2023-01-01 12:13:06 +01:00
Ilja
56227ef7ba
Descriptions from exif data with only whitespeces are considered empty
...
I noticed that pictures taken with Ubuntu-Touch have whitespace in one of the fields
This should just be ignored imo
2022-07-01 13:47:23 +02:00
Ilja
8c761942b1
update moduledoc
2022-07-01 12:15:02 +02:00
Ilja
8303af84ce
Rename the Exiftool module
...
No migrations or checks yet
2022-07-01 12:15:02 +02:00
Ilja
551721e41a
Rename the new module
2022-07-01 12:13:46 +02:00
Ilja
cd316d7269
Use EXIF data of image to prefill image description
...
During attachment upload Pleroma returns a "description" field. Pleroma-fe has an MR to use that to pre-fill the image description field, <https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1399 >
* This MR allows Pleroma to read the EXIF data during upload and return the description to the FE
* If a description is already present (e.g. because a previous module added it), it will use that
* Otherwise it will read from the EXIF data. First it will check -ImageDescription, if that's empty, it will check -iptc:Caption-Abstract
* If no description is found, it will simply return nil, just like before
* When people set up a new instance, they will be asked if they want to read metadata and this module will be activated if so
This was taken from an MR i did on Pleroma and isn't finished yet.
2022-07-01 12:13:46 +02:00
Sean King
17aa3644be
Copyright bump for 2022
2022-02-25 23:11:42 -07:00
Mark Felder
5c27578bce
Support metadata for video files too
2021-06-08 12:54:09 -05:00
Alex Gleason
bdaa1d4512
Upload.Filter: use generic types in @spec
...
Speeds up recompilation by reducing compile-time deps
2021-06-07 17:11:17 -05:00
Mark Felder
9b6b5ac196
Rename upload filter to AnalyzeMetadata
2021-05-18 15:33:33 -05:00
Alex Gleason
543e9402d6
Support blurhash
2021-05-14 09:07:16 -05:00
Alex Gleason
ab9eabdf20
Add SetMeta filter to store uploaded image sizes
2021-05-12 15:07:31 -05:00
Mark Felder
73aef0503c
Exiftool also cannot strip from heic files.
2021-02-20 14:29:35 -06:00
Mark Felder
369581db6d
Show a proper error. A failure doesn't always mean the command isn't available, and we check for it on startup
2021-02-20 14:27:42 -06:00
Haelwenn (lanodan) Monnier
c4439c630f
Bump Copyright to 2021
...
grep -rl '# Copyright © .* Pleroma' * | xargs sed -i 's;Copyright © .* Pleroma .*;Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/ >;'
2021-01-13 07:49:50 +01:00
Mark Felder
4ea07f74e9
Revert/simplify.
...
We only need to check the content-type. There's no chance a webp file
will get mismatched as another image type.
2020-09-08 12:29:38 +03:00
Mark Felder
216c84a8f4
Bypass the filter based on content-type as well in case a webp image is uploaded with the wrong file extension.
2020-09-08 12:29:38 +03:00
Mark Felder
2165a24974
Improve upload filter return values so we can identify when filters make no changes to the input
2020-09-08 12:29:38 +03:00
Mark Felder
fa347b9c2f
Fix uploading webp image files when Exiftool Upload Filter is enabled
2020-09-08 12:29:38 +03:00
lain
76ce3a1c9e
Mogrifun: Add a line about the purpose of the module.
2020-08-14 18:27:18 +02:00
Roman Chvanikov
7569f225f1
Move checks to application startup
2020-08-05 19:38:55 +03:00
Roman Chvanikov
3116a75e80
Check if mogrify available before calling it
2020-07-11 18:22:03 +03:00
Roman Chvanikov
523f1b93a4
Remove Logger requirement
2020-07-11 18:15:51 +03:00
Roman Chvanikov
45bd64e2a7
Error in Filter.Exiftool if exiftool not found
2020-07-11 18:11:23 +03:00
Roman Chvanikov
aedbbec88a
Add Pleroma.Utils.command_available?/1 and use where appropriate
2020-07-11 15:48:45 +03:00
Mark Felder
b329f05ed6
Remove unused @types
2020-07-10 17:08:54 -05:00
Mark Felder
9e45672674
Add a moduledoc
2020-07-10 17:07:28 -05:00
Mark Felder
6167593881
Support Exiftool for stripping EXIF data
...
We really only want to strip location data anyway, and mogrify strips color profiles.
2020-07-10 16:46:26 -05:00
Mark Felder
05da5f5cca
Update Copyrights
2020-03-03 16:44:49 -06:00