diff options
author | Starfall <us@starfall.systems> | 2020-07-07 10:08:13 -0500 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2020-07-07 10:10:33 -0500 |
commit | 147b4e7713cf5555fc4b515c7d88da49bf597f46 (patch) | |
tree | 67e33c2838eea691088e77ec4e19afb23104e77d /app/models | |
parent | cfd52a032aa4ee545d479b65a295e6a9e77c4f4f (diff) | |
parent | c4e1b82caf5c932a3c19bc77726c9e3ab3d2c46a (diff) |
Mastodon 3.1.5 / Merge branch 'glitch' into main
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/media_attachment.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 61581138e..cc0a1ab27 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -40,6 +40,13 @@ class MediaAttachment < ApplicationRecord VIDEO_FILE_EXTENSIONS = %w(.webm .mp4 .m4v .mov).freeze AUDIO_FILE_EXTENSIONS = %w(.ogg .oga .mp3 .wav .flac .opus .aac .m4a .3gp .wma).freeze + META_KEYS = %i( + focus + colors + original + small + ).freeze + IMAGE_MIME_TYPES = %w(image/jpeg image/png image/gif).freeze VIDEO_MIME_TYPES = %w(video/webm video/mp4 video/quicktime video/ogg).freeze VIDEO_CONVERTIBLE_MIME_TYPES = %w(video/webm video/quicktime).freeze @@ -165,7 +172,7 @@ class MediaAttachment < ApplicationRecord has_attached_file :thumbnail, styles: THUMBNAIL_STYLES, - processors: [:lazy_thumbnail, :blurhash_transcoder], + processors: [:lazy_thumbnail, :blurhash_transcoder, :color_extractor], convert_options: GLOBAL_CONVERT_OPTIONS validates_attachment_content_type :thumbnail, content_type: IMAGE_MIME_TYPES @@ -216,7 +223,7 @@ class MediaAttachment < ApplicationRecord x, y = (point.is_a?(Enumerable) ? point : point.split(',')).map(&:to_f) - meta = (file.instance_read(:meta) || {}).with_indifferent_access.slice(:focus, :original, :small) + meta = (file.instance_read(:meta) || {}).with_indifferent_access.slice(*META_KEYS) meta['focus'] = { 'x' => x, 'y' => y } file.instance_write(:meta, meta) @@ -338,7 +345,7 @@ class MediaAttachment < ApplicationRecord end def populate_meta - meta = (file.instance_read(:meta) || {}).with_indifferent_access.slice(:focus, :original, :small) + meta = (file.instance_read(:meta) || {}).with_indifferent_access.slice(*META_KEYS) file.queued_for_write.each do |style, file| meta[style] = style == :small || image? ? image_geometry(file) : video_metadata(file) |