Commit graph

181 commits

Author SHA1 Message Date
Simon L
46dfb84bca log imaginary errors as info to not spam the server logs
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-08-09 16:10:27 +02:00
Joas Schilling
4f7de8ed60
fix!: Remove legacy event dispatching Symfony's GenericEvent
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 09:57:51 +02:00
Christoph Wurst
14719110b9 chore: Replace \OC::$server->query with \OCP\Server::get in /lib
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-07-06 15:21:22 +02:00
Daniel Kesselberg
3757f390c3
feat: replace id3parser with mp3info
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-06-28 14:58:59 +02:00
Daniel Kesselberg
440f882322
feat: add width, height, crop and mode to BeforePreviewFetchedEvent
user_usage_report keeps a counter for files read.

The app uses

- OC_Filesystem::read hook
- Event listener (the legacy one) for IPreview::EVENT

Request for previews do not trigger the hook, hence the additional event listener.
The thumbnails for a list or grid view should not count, so we need the width and height.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-06-23 16:27:35 +02:00
Robin Appelman
9f1d497a0b
Merge pull request #38261 from fsamapoor/replace_strpos_calls_in_lib_private
Refactors "strpos" calls in  lib/private to improve code readability.
2023-06-01 23:10:00 +02:00
Daniel Kesselberg
0670ae607b
fix: catch errors in id3parser library
We use a forked version of getID3 to read embedded images from mp3 files to use them as previews.

If the library is unable to extract a image or fails on something different we should handle it properly.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-28 17:01:23 +02:00
JanisPlayer
c71a3065a7 Allow to specify an imaginary key
Signed-off-by: JanisPlayer <54918417+JanisPlayer@users.noreply.github.com>
2023-05-22 22:19:51 +02:00
Simon L
6608f84a46
Merge pull request #36692 from nextcloud/throw-exception-to-avoid-division-by-zero
fix(preview-generator): Throw exception before dividing by zero when generating previews
2023-05-17 00:14:42 +02:00
Faraz Samapoor
e7cc7653b8 Refactors "strpos" calls in lib/private to improve code readability.
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-15 15:17:19 +03:30
Simon L
d55a7c619d Fix typos in lib/public subdirectory
Found via `codespell -q 3 -S l10n -L jus ./lib/public`

Signed-off-by: luz paz <luzpaz@github.com>

Update lib/public/Accounts/IAccount.php

Signed-off-by: luz paz <luzpaz@github.com>

Signed-off-by: Simon L <szaimen@e.mail.de>
Co-Authored-By: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-05-10 11:56:34 +02:00
Simon L
527de8ac9d
Merge pull request #37148 from nextcloud/enh/noid/increase-imaginary-timeouts
increase imaginary timeouts as for big files the processing could take very long
2023-05-04 12:44:52 +02:00
Côme Chilliet
b294edad80
Merge branch 'master' into enh/type-iconfig-getter-calls
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-04-20 16:52:38 +02:00
Simon L
8508865eaf
Merge pull request #37772 from nextcloud/enh/30986/follow-up
Prevent the OpenDocument preview generator from trying to open empty files
2023-04-18 12:18:14 +02:00
Simon L
800f40b71c fix php-lint
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-04-17 17:18:09 +02:00
Glandos
e542e60dbc try to make linters happy
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:14 +02:00
Glandos
3440387f0f gather code from small and max preview
use directory listing in both functions to gain 25% speed on run where
every preview already exist.

Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
24c121347a Revert 0e49b40
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
06a7e90383 improve parameter doc
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
4954bead1d Ensure max preview image is not null
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
b6c65fee2a php-cs-fix
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Glandos
9b4d5146d5 List preview directory only once
getCachedPreview used to call `getFile`, and this calls `getDirectoryListing` (or underlying function that list directory) to find the file. This was done for every preview spec.
Now, this is done only once at the beginning of the loop, and the array is just iterated when needed to find the correct entry.

Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-04-17 16:29:13 +02:00
Claus-Justus Heine
456679c6fb Update lib/private/Preview/Bundled.php
Co-authored-by: Carl Schwan <carl@carlschwan.eu>
2023-04-17 16:19:02 +02:00
Claus-Justus Heine
b3d8363327 Prevent the OpenDocument preview generator from trying to open empty files.
Rationale: does not make sense, and triggers a deprecation error in
\ZipArchive.

Signed-off-by: Claus-Justus Heine <himself@claus-justus-heine.de>
2023-04-17 16:19:02 +02:00
Côme Chilliet
426c0341ff
Use typed version of IConfig::getSystemValue as much as possible
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 12:50:08 +02:00
Simon L
0ced170567 increase imaginary timeouts as for big files the processing could take very long
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 13:15:35 +01:00
Simon L
b39329c21c imaginary - fix autorotate and improve the logic
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-03-09 00:11:37 +01:00
Glandos
3bea7af7b7
fix indent 2
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-02-16 10:10:12 +01:00
Glandos
59e7ed1fad
fix indent
Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-02-15 23:40:16 +01:00
Glandos
528e66859b
Use proc_open to avoid spawning a shell
The use of `exec` will spawn a shell, using `/bin/sh` on POSIX platforms. But in restricted environment, such as AppArmor, this means giving execution to `/bin/sh`, which renders the execution restriction quite useless.
Using an array with `proc_open` reduces this, and paved the way for file streaming instead of temporary file.

Signed-off-by: Glandos <bugs-github@antipoul.fr>
2023-02-15 23:37:13 +01:00
Thomas Citharel
e60888d988
fix(preview-generator): Throw exception before dividing by zero when generating previews
If the maximum preview generated gives some kind of invalid IImage, it's dimentions and filename can be set to zero.
And then later we do a division by zero to keep the aspect ratio of the previews.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-02-13 16:47:28 +01:00
Robin Appelman
382432d4e1
cache formats supported by imagick
turns out this can be quite slow

Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-13 14:57:06 +01:00
Simon L
112d516f27 imaginary - allow to generate heif, pdf and svg thumbnails
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-02-08 00:25:18 +01:00
Simon L
9a64d95676 imaginary - add tiff to supported formats
Signed-off-by: Simon L <szaimen@e.mail.de>
2023-01-25 11:53:16 +01:00
Côme Chilliet
f5c361cf44
composer run cs:fix
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +01:00
Daniel Kesselberg
71a6030706
docs: add description how BackgroundCleanupJob.getNewPreviewLocations works
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-01-03 16:03:02 +01:00
Côme Chilliet
a372564850
Fix psalm spotted errors with new requirements
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-02 15:02:28 +01:00
Varun Patil
7004c1e9f8 preview: fix HEIC orientation
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2022-12-08 23:14:13 -08:00
Côme Chilliet
a0f6a6545b
Use TimedJob from OCP instead of OC
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-12-05 10:13:34 +01:00
Varun Patil
b91d6c22cf preview: respect quality in Imaginary
Signed-off-by: Varun Patil <varunpatil@ucla.edu>
2022-12-03 07:13:49 -08:00
Richard Steinmetz
98e55ea4f0
Fix distorted previews when using imaginary
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-11-11 14:21:05 +01:00
szaimen
f9e9cd270d
Limit-number-of-concurrent-preview-generations
Signed-off-by: Bowen Ding <dbw9580@live.com>
Signed-off-by: szaimen <szaimen@e.mail.de>
2022-11-05 16:03:01 +08:00
Julius Härtl
07e94eca6f
Emit typed event when preview is requested
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-10-27 14:31:33 +02:00
Julius Härtl
4baf960c21
Save getting the parent node when generating the preview
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-08-24 22:20:32 +02:00
Christopher Ng
57c66bf7cb Use Image class from public API
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-06-02 00:37:36 +00:00
John Molakvoæ
87ce03db1a
Merge pull request #32410 from nextcloud/bugfix/noid/imaginary-exception 2022-05-20 08:14:17 +02:00
Carl Schwan
a5a4e0df1c Fix crop condition
Make sure that when fetching the image from the cache we don't
accidentally fetch the cropped image just because it also start with
256-256

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-19 17:25:32 +02:00
Julius Härtl
3742b7392d Add explicit return if getSmallImagePreview fails
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-05-19 17:01:01 +02:00
Carl Schwan
05bf8b4445 Fix cropped image generated when not asked
The $crop parameter was not propagated to the imaginary pipeline and
instead it used the smartcrop algorithm always

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-17 10:19:54 +02:00
John Molakvoæ
0863a3d423
Merge pull request #32315 from nextcloud/fix/noid/preview-duplicate-folder-creation 2022-05-10 10:11:24 +02:00