diff --git a/app/lib/activitypub/activity/like.rb b/app/lib/activitypub/activity/like.rb index 86aaba076d..ba103b1fa7 100644 --- a/app/lib/activitypub/activity/like.rb +++ b/app/lib/activitypub/activity/like.rb @@ -103,7 +103,12 @@ class ActivityPub::Activity::Like < ActivityPub::Activity return if custom_emoji_parser.shortcode.blank? || custom_emoji_parser.image_remote_url.blank? domain = tag['domain'] || URI.split(custom_emoji_parser.uri)[2] || @account.domain - domain = nil if domain == Rails.configuration.x.local_domain || domain == Rails.configuration.x.web_domain + + if domain == Rails.configuration.x.local_domain || domain == Rails.configuration.x.web_domain + # Block overwriting remote-but-local data + return CustomEmoji.find_by(shortcode: custom_emoji_parser.shortcode, domain: nil) + end + return if domain.present? && skip_download?(domain) emoji = CustomEmoji.find_by(shortcode: custom_emoji_parser.shortcode, domain: domain) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 57f61bcacf..aca8ccb2e6 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,7 +9,7 @@ module Mastodon end def kmyblue_minor - 1 + 2 end def kmyblue_flag diff --git a/spec/lib/activitypub/activity/like_spec.rb b/spec/lib/activitypub/activity/like_spec.rb index 9991ba37dc..16ea81dccd 100644 --- a/spec/lib/activitypub/activity/like_spec.rb +++ b/spec/lib/activitypub/activity/like_spec.rb @@ -185,6 +185,10 @@ RSpec.describe ActivityPub::Activity::Like do } end + before do + Fabricate(:custom_emoji, domain: nil, shortcode: 'tinking', license: 'Everyone but Ohagi') + end + it 'create emoji reaction' do expect(subject.count).to eq 1 expect(subject.first.name).to eq 'tinking'