about summary refs log tree commit diff
path: root/lib/paperclip
AgeCommit message (Collapse)Author
2020-09-27Fix downloading remote media files when server returns empty filename (#14867)ThibG
Fixes #14817
2020-09-11Change REST API to return empty data for suspended accounts (#14765)Eugen Rochko
2020-09-01Bump rubocop from 0.86.0 to 0.88.0 (#14412)dependabot[bot]
* Bump rubocop from 0.86.0 to 0.88.0 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.86.0 to 0.88.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.86.0...v0.88.0) Signed-off-by: dependabot[bot] <support@github.com> * Fix for latest RuboCop Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
2020-08-02Fix thumbnail color extraction (#14464)ThibG
* Fix contrast calculation for thumbnail color extraction Luminance calculation was using 0-255 RGB values instead of 0-1 sRGB values, leading to incorrectly-computed contrast values. Since we use ColorDiff already, just use its XYZ colorspace conversion code to get the value. * Require at least 3:1 contrast for both accent and foreground colors * Lower required contrast for the accent color
2020-08-02Change content-type to be always computed from file data (#14452)ThibG
* Change content-type to be always computed from file data Restore previous behavior, detecting the content-type isn't very expensive, and some instances may serve files as application/octet-stream regardless of their true type, making fetching media from them fail, while it used to work pre-3.2.0. * Add test
2020-07-19Fix mimetype returning nil (#14356)Takeshi Umeda
2020-07-07Fix ogg vorbis files with a cover art not being correctly processed (#14255)ThibG
2020-07-05Add color extraction for audio thumbnails (#14209)Eugen Rochko
2020-07-03Fix audio uploads without embedded image (#14203)Eugen Rochko
2020-06-30Fix remote files not using Content-Type header, streaming (#14184)Eugen Rochko
2020-06-29Add customizable thumbnails for audio and video attachments (#14145)Eugen Rochko
- Change audio files to not be stripped of metadata - Automatically extract cover art from audio if it exists - Add `thumbnail` parameter to `POST /api/v1/media`, `POST /api/v2/media` and `PUT /api/v1/media/:id` - Add `icon` to represent it in attachments in ActivityPub - Fix `preview_url` containing URL of missing missing image when there is no thumbnail instead of null - Fix duration of audio not being displayed on public pages until the file is loaded
2020-06-05Add blurhash to preview cards (#13984)ThibG
Fixes #13001
2020-05-15Fix GifReader exceptions (#13760)ThibG
2020-04-26Add separate cache directory for non-local uploads (#12821)Eugen Rochko
2020-04-06Fix trying to delete already deleted file when post-processing (#13406)Eugen Rochko
Fix #13403
2020-03-26Fix Paperclip using deprecated URI.escape function (#13320)ThibG
Monkey-patch Paperclip to perform URL escaping in a slightly more appropriate way, and get rid of runtime deprecation warnings.
2020-03-26Change `tootctl media remove-orphans` to work for all classes (#13316)Eugen Rochko
Change `tootctl media lookup` to not use an interactive prompt
2020-03-10Fix videos with unsupported colorspace not being transcoded (#13242)ThibG
2020-03-09Fix MP4 (H264 + AAC) video files being needlessly re-encoded (#13239)ThibG
2020-03-08Change local media attachments to perform heavy processing asynchronously ↵Eugen Rochko
(#13210) Fix #9106
2020-01-11Fix ruby 2.7 warnings about keyword parameters (#12824)ThibG
2019-12-02Update ESLint and RuboCop in Code Climate (#12534)Yamagishi Kazutoshi
2019-10-03Fix performance of GIF re-encoding (#12057)Eugen Rochko
* Change animated GIF detection to not shell out to ImageMagick Signed-off-by: Eugen Rochko <eugen@zeonfederated.com> * Change video encoding parameters to limit to 10800 video frames Signed-off-by: Eugen Rochko <eugen@zeonfederated.com> * Limit GIF image size further Signed-off-by: Eugen Rochko <eugen@zeonfederated.com> * Always strip metadata from video files * Fix code style issues
2019-06-20Fix converted media being saved with original extension and mime type (#11130)Eugen Rochko
2019-04-27Add blurhash (#10630)Eugen Rochko
* Add blurhash * Use fallback color for spoiler when blurhash missing * Federate the blurhash and accept it as long as it's at most 5x5 * Display unknown media attachments as blurhash placeholders * Improve style of embed actions and spoiler button * Change blurhash resolution from 3x3 to 4x4 * Improve dependency definitions * Fix code style issues
2018-09-17Unconditionally re-encode locally-uploaded images to strip metadata (#8714)ThibG
This strips metadata on file upload by re-encoding the files, at the cost of possible slight image quality decrease and processing resources.
2018-07-28Resize images by area instead of fixed dimensions (#8083)Eugen Rochko
To improve the way super tall or super ride images are treated, the numbers remain the same, 1280x1280 and 400x400, but if an image is less in one dimension than the other, the other can become larger Thanks to @WAHa_06x36@mastodon.social for the tip
2018-07-14Fix static GIFs being saved as empty files when using local storage (#8012)Eugen Rochko
Fix #7997 Fix #6237
2018-03-06Fix #3807: Increase avatars to 400x400 max (#6651)Eugen Rochko
But do not upscale when they are smaller
2018-02-22Fix #6525: Make sure file is opened in LazyThumbnail processor (#6529)Eugen Rochko
2018-02-21Account archive download (#6460)Eugen Rochko
* Fix #201: Account archive download * Export actor and private key in the archive * Optimize BackupService - Add conversation to cached associations of status, because somehow it was forgotten and is source of N+1 queries - Explicitly call GC between batches of records being fetched (Model class allocations are the worst offender) - Stream media files into the tar in 1MB chunks (Do not allocate media file (up to 8MB) as string into memory) - Use #bytesize instead of #size to calculate file size for JSON (Fix FileOverflow error) - Segment media into subfolders by status ID because apparently GIF-to-MP4 media are all named "media.mp4" for some reason * Keep uniquely generated filename in Paperclip::GifTranscoder * Ensure dumped files do not overwrite each other by maintaing directory partitions * Give tar archives a good name * Add scheduler to remove week-old backups * Fix code style issue
2018-02-21Fix avatar and header issues by using custom geometry detector (#6515)Eugen Rochko
* Fix avatar and header issues by using custom geometry detector Revert a part of #6508. The file passed to dynamic styles method was not actually a file, but an instance of Paperclip::Attachment, which broke all styles by always returning {} from the method. One problem with GIF avatars was that Paperclip::GeometryDetector reported wrong dimensions for them, e.g. 120x120 GIF avatar would for some reason be detected as 120x53. By writing our own geometry parser, we can use FastImage, which also happens to be faster than ImageMagick, to detect image dimensions, which are also correct. Unfortunately, this PR does not implement skipping a `convert` entirely if the dimensions are already correct, as I found no easy way to write that behaviour into Paperclip without rewriting the Paperclip::Thumbnail class. * Only invoke convert if dimension or format needs to be changed
2017-10-26Fix Cocaine::ExitStatusError when upload small non-animated GIF (#5489)unarist
Looks like copied tempfile need to be flushed before further processing. This issue won't happen if the uploaded file has enough file size.
2017-04-19Fix #2108 - Fix gif uploads (#2171)Eugen
* Fix #2108 - Fix gif uploads Add specs for media attachment gifv conversion * Add ffmpeg to travis * Make travis install ffmpeg, not libav * Switch travis to trusty
2017-03-06Use more widely supported MP4 format for gifv'sEugen Rochko
2017-03-05Detect videos with no sound, handle them like gifvEugen Rochko
2017-03-04Fix #431 - convert gif to webm during upload. Web UI treats them like it didEugen Rochko
before. In the API, attachments now can be either image, video or gifv. Gifv is to be treated like images in terms of behaviour, but are videos by file type.