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:
@@ -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
|
||||
|
Reference in New Issue
Block a user