diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-01-13 12:26:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 12:26:34 +0100 |
commit | afd0d424da4928b9e20a3c7a943f970252ed3a29 (patch) | |
tree | 98641aa5df145b1a025ff29940c2d8814f6b7b2f /app/models | |
parent | 932a22219ae99a285bdd0b69f02627f029327db3 (diff) | |
parent | b52dc5f69d27ce2fcc84b3929840f2d8704ae48a (diff) |
Merge pull request #2080 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
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 |