diff options
Diffstat (limited to 'app/models/status.rb')
-rw-r--r-- | app/models/status.rb | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 791d96df1..24eaf7071 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -12,12 +12,12 @@ # in_reply_to_id :integer # reblog_of_id :integer # url :string -# sensitive :boolean default(FALSE) +# sensitive :boolean default(FALSE), not null # visibility :integer default("public"), not null # in_reply_to_account_id :integer # application_id :integer # spoiler_text :text default(""), not null -# reply :boolean default(FALSE) +# reply :boolean default(FALSE), not null # favourites_count :integer default(0), not null # reblogs_count :integer default(0), not null # language :string @@ -29,6 +29,7 @@ class Status < ApplicationRecord include Streamable include Cacheable include StatusThreadingConcern + include EmojiHelper enum visibility: [:public, :unlisted, :private, :direct], _suffix: :visibility @@ -120,10 +121,11 @@ class Status < ApplicationRecord !sensitive? && media_attachments.any? end - before_validation :prepare_contents + before_validation :prepare_contents, if: :local? before_validation :set_reblog before_validation :set_visibility before_validation :set_conversation + before_validation :set_sensitivity class << self def not_in_filtered_languages(account) @@ -240,6 +242,9 @@ class Status < ApplicationRecord def prepare_contents text&.strip! spoiler_text&.strip! + + self.text = emojify(text) + self.spoiler_text = emojify(spoiler_text) end def set_reblog @@ -248,6 +253,11 @@ class Status < ApplicationRecord def set_visibility self.visibility = (account.locked? ? :private : :public) if visibility.nil? + self.sensitive = false if sensitive.nil? + end + + def set_sensitivity + self.sensitive = sensitive || spoiler_text.present? end def set_conversation |