When processing custom emoji, ensure a non-animated version exists (#5230)
Use the non-animated version in web UI, but return both in API
This commit is contained in:
		| @@ -52,7 +52,7 @@ export const buildCustomEmojis = customEmojis => { | ||||
|  | ||||
|   customEmojis.forEach(emoji => { | ||||
|     const shortcode = emoji.get('shortcode'); | ||||
|     const url       = emoji.get('url'); | ||||
|     const url       = emoji.get('static_url'); | ||||
|     const name      = shortcode.replace(':', ''); | ||||
|  | ||||
|     emojis.push({ | ||||
|   | ||||
| @@ -60,7 +60,7 @@ const normalizeStatus = (state, status) => { | ||||
|  | ||||
|   const searchContent = [status.spoiler_text, status.content].join(' ').replace(/<br \/>/g, '\n').replace(/<\/p><p>/g, '\n\n'); | ||||
|   const emojiMap = normalStatus.emojis.reduce((obj, emoji) => { | ||||
|     obj[`:${emoji.shortcode}:`] = emoji.url; | ||||
|     obj[`:${emoji.shortcode}:`] = emoji.static_url; | ||||
|     return obj; | ||||
|   }, {}); | ||||
|  | ||||
|   | ||||
| @@ -92,7 +92,7 @@ class Formatter | ||||
|   def encode_custom_emojis(html, emojis) | ||||
|     return html if emojis.empty? | ||||
|  | ||||
|     emoji_map = emojis.map { |e| [e.shortcode, full_asset_url(e.image.url)] }.to_h | ||||
|     emoji_map = emojis.map { |e| [e.shortcode, full_asset_url(e.image.url(:static))] }.to_h | ||||
|  | ||||
|     i                     = -1 | ||||
|     inside_tag            = false | ||||
|   | ||||
| @@ -21,7 +21,7 @@ class CustomEmoji < ApplicationRecord | ||||
|     :(#{SHORTCODE_RE_FRAGMENT}): | ||||
|     (?=[^[:alnum:]:]|$)/x | ||||
|  | ||||
|   has_attached_file :image | ||||
|   has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce -strip' } } | ||||
|  | ||||
|   validates_attachment :image, content_type: { content_type: 'image/png' }, presence: true, size: { in: 0..50.kilobytes } | ||||
|   validates :shortcode, uniqueness: { scope: :domain }, format: { with: /\A#{SHORTCODE_RE_FRAGMENT}\z/ }, length: { minimum: 2 } | ||||
|   | ||||
| @@ -3,9 +3,13 @@ | ||||
| class REST::CustomEmojiSerializer < ActiveModel::Serializer | ||||
|   include RoutingHelper | ||||
|  | ||||
|   attributes :shortcode, :url | ||||
|   attributes :shortcode, :url, :static_url | ||||
|  | ||||
|   def url | ||||
|     full_asset_url(object.image.url) | ||||
|   end | ||||
|  | ||||
|   def static_url | ||||
|     full_asset_url(object.image.url(:static)) | ||||
|   end | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user