Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `app/models/status.rb`:
  Minor upstream refactor moved hook definitions around,
  and glitch-soc has an extra `before_create`.
  Moved the `before_create` accordingly.
- `app/services/batched_remove_status_service.rb`:
  Minor upstream refactor changed a block in which glitch-soc
  had one extra call to handle direct timelines.
  Adapted changes to keep glitch-soc's extra call.
This commit is contained in:
Claire
2023-01-12 10:15:46 +01:00
144 changed files with 1747 additions and 1538 deletions

View File

@@ -31,7 +31,7 @@
#
class Status < ApplicationRecord
before_destroy :unlink_from_conversations
before_destroy :unlink_from_conversations!
include Discard::Model
include Paginable
@@ -314,15 +314,14 @@ class Status < ApplicationRecord
after_create_commit :store_uri, if: :local?
after_create_commit :update_statistics, if: :local?
around_create Mastodon::Snowflake::Callbacks
before_create :set_locality
before_validation :prepare_contents, if: :local?
before_validation :set_reblog
before_validation :set_visibility
before_validation :set_conversation
before_validation :set_local
before_create :set_locality
around_create Mastodon::Snowflake::Callbacks
after_create :set_poll_id
@@ -504,6 +503,17 @@ class Status < ApplicationRecord
update_attribute(:deleted_at, discard_time)
end
def unlink_from_conversations!
return unless direct_visibility?
inbox_owners = mentioned_accounts.local
inbox_owners += [account] if account.local?
inbox_owners.each do |inbox_owner|
AccountConversation.remove_status(inbox_owner, self)
end
end
private
def update_status_stat!(attrs)
@@ -587,15 +597,4 @@ class Status < ApplicationRecord
reblog&.decrement_count!(:reblogs_count) if reblog?
thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && distributable?
end
def unlink_from_conversations
return unless direct_visibility?
inbox_owners = mentioned_accounts.local
inbox_owners += [account] if account.local?
inbox_owners.each do |inbox_owner|
AccountConversation.remove_status(inbox_owner, self)
end
end
end