about summary refs log tree commit diff
path: root/app/services/update_remote_profile_service.rb
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2018-04-01 20:24:50 -0500
committerDavid Yip <yipdw@member.fsf.org>2018-04-01 20:24:50 -0500
commiteb39db7f93061c936fcb0bb24d5ba0c9a6186993 (patch)
treee12b5f5c9fec1d698024c88cd9f3ea9fe5b249cd /app/services/update_remote_profile_service.rb
parentf0bb3ff53307aac7b9c64ec8a48d4ba1d2019513 (diff)
parentf890d2a766ae4c7fd8611dd4f3a15a13408f68c3 (diff)
Merge remote-tracking branch 'origin/master' into gs-master
  Conflicts:
 	app/javascript/mastodon/locales/en.json
 	app/javascript/mastodon/locales/ja.json
 	app/javascript/mastodon/locales/pl.json
 	app/views/accounts/_header.html.haml
Diffstat (limited to 'app/services/update_remote_profile_service.rb')
-rw-r--r--app/services/update_remote_profile_service.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/services/update_remote_profile_service.rb b/app/services/update_remote_profile_service.rb
index 49a907682..aca1185de 100644
--- a/app/services/update_remote_profile_service.rb
+++ b/app/services/update_remote_profile_service.rb
@@ -40,6 +40,27 @@ class UpdateRemoteProfileService < BaseService
         account.header_remote_url = ''
         account.header.destroy
       end
+
+      save_emojis(account) if remote_profile.emojis.present?
+    end
+  end
+
+  def save_emojis(parent)
+    do_not_download = DomainBlock.find_by(domain: parent.account.domain)&.reject_media?
+
+    return if do_not_download
+
+    remote_account.emojis.each do |link|
+      next unless link['href'] && link['name']
+
+      shortcode = link['name'].delete(':')
+      emoji     = CustomEmoji.find_by(shortcode: shortcode, domain: parent.account.domain)
+
+      next unless emoji.nil?
+
+      emoji = CustomEmoji.new(shortcode: shortcode, domain: parent.account.domain)
+      emoji.image_remote_url = link['href']
+      emoji.save
     end
   end
 end