mastodon/app/lib
Eugen Rochko a7171af0a3
Fix avatar and header issues by using custom geometry detector (#6515)
* 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
2018-02-21 03:40:12 +01:00
..
activitypub Push discovered status through streaming API within a time window (#6484) 2018-02-17 14:28:48 +01:00
ostatus Push discovered status through streaming API within a time window (#6484) 2018-02-17 14:28:48 +01:00
settings Refactor Setting (#3302) 2017-05-25 14:14:36 +02:00
activity_tracker.rb Fix stats expiring too quickly because of variable mistake (#6155) 2018-01-02 14:02:53 +01:00
application_extension.rb Conditional validations no longer accept strings for if/unless (#3124) 2017-05-19 03:11:23 +02:00
delivery_failure_tracker.rb After 7 days of repeated delivery failures, give up on inbox (#5131) 2017-09-29 03:16:20 +02:00
exceptions.rb Add callback_url/acct information for Sidekiq PuSH workers Exception. (#4281) 2017-07-27 00:38:20 +02:00
extractor.rb Using double splat operator (#5859) 2017-12-06 11:41:57 +01:00
fast_geometry_parser.rb Fix avatar and header issues by using custom geometry detector (#6515) 2018-02-21 03:40:12 +01:00
feed_manager.rb Allow hiding of reblogs from followed users (#5762) 2017-11-28 15:00:35 +01:00
formatter.rb Don't normalize URLs in toots (#6134) 2018-01-03 20:51:33 +01:00
hash_object.rb Migrate from ledermann/rails-settings to rails-settings-cached which allows global settings 2017-01-12 20:46:24 +01:00
inline_renderer.rb Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl (#4090) 2017-07-07 04:02:06 +02:00
language_detector.rb Improve language filter (#5724) 2017-11-16 13:51:38 +01:00
provider_discovery.rb Fix XML oEmbed support discovery (#6104) 2017-12-27 03:29:49 +01:00
request.rb Using double splat operator (#5859) 2017-12-06 11:41:57 +01:00
sanitize_config.rb [!] Sanitize incoming classlist properly (#6162) 2018-01-03 03:54:08 +01:00
status_filter.rb Full-text search for authorized statuses (#6423) 2018-02-09 23:04:47 +01:00
status_finder.rb Raise an error for remote url in StatusFinder (#4776) 2017-09-02 17:42:47 +02:00
tag_manager.rb Introduce OStatus::TagManager (#5008) 2017-09-19 18:08:08 +02:00
themes.rb Add support for multiple themes (#4959) 2017-09-19 16:36:23 +02:00
user_settings_decorator.rb Add preference to always display sensitive media (#6448) 2018-02-09 00:26:57 +01:00
webfinger_resource.rb Allow webfinger controller to reply to user@WEB_DOMAIN in addition to user@LOCAL_DOMAIN (#2351) 2017-04-23 14:19:54 +02:00