diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-01-12 10:15:46 +0100 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2023-01-12 10:15:46 +0100 |
commit | 3e63fcd4f07b13ba647dfa8a3bac6b1ebbd76614 (patch) | |
tree | 756a29c017aa843ddb0773627dabb27b08e45960 /app/models | |
parent | 932a22219ae99a285bdd0b69f02627f029327db3 (diff) | |
parent | 15b88a83ab7dbe022e33552f45f300fc69a934d0 (diff) |
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.
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/status.rb | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 6cfe19d23..14b7a39fe 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -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 |