Skip to content
Snippets Groups Projects
Commit a5daa806 authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Fix casuality of processing remote mentions such that notifications

about them would be processed only after the entire status is processed
parent 47bf592d
No related branches found
No related tags found
No related merge requests found
......@@ -61,12 +61,25 @@ class ProcessFeedService < BaseService
status.save!
NotifyService.new.call(status.reblog.account, status) if status.reblog? && status.reblog.account.local?
notify_about_mentions!(status) unless status.reblog?
notify_about_reblog!(status) if status.reblog? && status.reblog.account.local?
Rails.logger.debug "Queuing remote status #{status.id} (#{id}) for distribution"
DistributionWorker.perform_async(status.id)
status
end
def notify_about_mentions!(status)
status.mentions.includes(:account).each do |mention|
mentioned_account = mention.account
next unless mentioned_account.local?
NotifyService.new.call(mentioned_account, mention)
end
end
def notify_about_reblog!(status)
NotifyService.new.call(status.reblog.account, status)
end
def delete_status
Rails.logger.debug "Deleting remote status #{id}"
status = Status.find_by(uri: id)
......@@ -159,10 +172,7 @@ class ProcessFeedService < BaseService
next if mentioned_account.nil? || processed_account_ids.include?(mentioned_account.id)
mention = mentioned_account.mentions.where(status: parent).first_or_create(status: parent)
# Notify local user
NotifyService.new.call(mentioned_account, mention) if mentioned_account.local?
mentioned_account.mentions.where(status: parent).first_or_create(status: parent)
# So we can skip duplicate mentions
processed_account_ids << mentioned_account.id
......
......@@ -27,7 +27,7 @@ class ProcessMentionsService < BaseService
mentioned_account.mentions.where(status: status).first_or_create(status: status)
end
status.mentions.each do |mention|
status.mentions.includes(:account).each do |mention|
mentioned_account = mention.account
if mentioned_account.local?
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment