mirror of
https://github.com/mastodon/mastodon.git
synced 2024-08-20 21:08:15 -07:00
fix: custom emoji shortcode case not respected
This commit is contained in:
parent
e98833748e
commit
519a62a5f5
1 changed files with 10 additions and 4 deletions
|
@ -19,22 +19,28 @@ class EntityCache
|
|||
shortcodes = Array(shortcodes)
|
||||
return [] if shortcodes.empty?
|
||||
|
||||
cached = Rails.cache.read_multi(*shortcodes.map { |shortcode| to_key(:emoji, shortcode, domain) })
|
||||
domain = domain.downcase if domain
|
||||
|
||||
cached = Rails.cache.read_multi(*shortcodes.map { |shortcode| to_emoji(:emoji, shortcode, domain) })
|
||||
uncached_ids = []
|
||||
|
||||
shortcodes.each do |shortcode|
|
||||
uncached_ids << shortcode unless cached.key?(to_key(:emoji, shortcode, domain))
|
||||
uncached_ids << shortcode unless cached.key?(to_emoji(:emoji, shortcode, domain))
|
||||
end
|
||||
|
||||
unless uncached_ids.empty?
|
||||
uncached = CustomEmoji.where(shortcode: shortcodes, domain: domain, disabled: false).index_by(&:shortcode)
|
||||
uncached.each_value { |item| Rails.cache.write(to_key(:emoji, item.shortcode, domain), item, expires_in: MAX_EXPIRATION) }
|
||||
uncached.each_value { |item| Rails.cache.write(to_emoji(:emoji, item.shortcode, domain), item, expires_in: MAX_EXPIRATION) }
|
||||
end
|
||||
|
||||
shortcodes.filter_map { |shortcode| cached[to_key(:emoji, shortcode, domain)] || uncached[shortcode] }
|
||||
shortcodes.filter_map { |shortcode| cached[to_emoji(:emoji, shortcode, domain)] || uncached[shortcode] }
|
||||
end
|
||||
|
||||
def to_key(type, *ids)
|
||||
"#{type}:#{ids.compact.map(&:downcase).join(':')}"
|
||||
end
|
||||
|
||||
def to_emoji(type, *ids)
|
||||
"#{type}:#{ids.compact.join(':')}"
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue