diff options
author | David Yip <yipdw@member.fsf.org> | 2018-04-01 20:24:50 -0500 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2018-04-01 20:24:50 -0500 |
commit | eb39db7f93061c936fcb0bb24d5ba0c9a6186993 (patch) | |
tree | e12b5f5c9fec1d698024c88cd9f3ea9fe5b249cd /app/services/activitypub/process_account_service.rb | |
parent | f0bb3ff53307aac7b9c64ec8a48d4ba1d2019513 (diff) | |
parent | f890d2a766ae4c7fd8611dd4f3a15a13408f68c3 (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/activitypub/process_account_service.rb')
-rw-r--r-- | app/services/activitypub/process_account_service.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 7d8dc1369..cf8462821 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -22,6 +22,7 @@ class ActivityPub::ProcessAccountService < BaseService create_account if @account.nil? update_account + process_tags(@account) end end @@ -187,4 +188,31 @@ class ActivityPub::ProcessAccountService < BaseService def lock_options { redis: Redis.current, key: "process_account:#{@uri}" } end + + def process_tags(account) + return if @json['tag'].blank? + as_array(@json['tag']).each do |tag| + case tag['type'] + when 'Emoji' + process_emoji tag, account + end + end + end + + def process_emoji(tag, _account) + return if skip_download? + return if tag['name'].blank? || tag['icon'].blank? || tag['icon']['url'].blank? + + shortcode = tag['name'].delete(':') + image_url = tag['icon']['url'] + uri = tag['id'] + updated = tag['updated'] + emoji = CustomEmoji.find_by(shortcode: shortcode, domain: @account.domain) + + return unless emoji.nil? || emoji.updated_at >= updated + + emoji ||= CustomEmoji.new(domain: @account.domain, shortcode: shortcode, uri: uri) + emoji.image_remote_url = image_url + emoji.save + end end |