Merge commit 'c40ab43dc703be988c277d4ba6b7987a3a80e16c' into glitch-soc/merge-upstream

Conflicts:
- `app/helpers/application_helper.rb`:
  Upstream added a helper where glitch-soc had its own, not really
  a conflict.
  Added upstream's helper.
- `lib/sanitize_ext/sanitize_config.rb`:
  Upstream renamed a constant that was used slightly differently in glitch-soc.
  Renamed it as upstream did.
This commit is contained in:
Claire
2024-10-06 16:07:58 +02:00
228 changed files with 2759 additions and 1850 deletions

View File

@@ -42,6 +42,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
def process_status
@tags = []
@mentions = []
@unresolved_mentions = []
@silenced_account_ids = []
@params = {}
@@ -55,6 +56,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
end
resolve_thread(@status)
resolve_unresolved_mentions(@status)
fetch_replies(@status)
distribute
forward_for_reply
@@ -197,6 +199,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
return if account.nil?
@mentions << Mention.new(account: account, silent: false)
rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError
@unresolved_mentions << tag['href']
end
def process_emoji(tag)
@@ -301,6 +305,12 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
ThreadResolveWorker.perform_async(status.id, in_reply_to_uri, { 'request_id' => @options[:request_id] })
end
def resolve_unresolved_mentions(status)
@unresolved_mentions.uniq.each do |uri|
MentionResolveWorker.perform_in(rand(30...600).seconds, status.id, uri, { 'request_id' => @options[:request_id] })
end
end
def fetch_replies(status)
collection = @object['replies']
return if collection.blank?