Do not mark remote status sensitive even if spoiler text is present (#7395)

Old statuses and statuses from Pawoo, which runs a modified version of
Mastodon, may not have been marked sensitive even if spoiler text is
present.

Such statuses are still not marked sensitve if they are local or
arrived before version upgrade. Marking recently fetched remote status
sensitive contradicts the behavior.

Considering what people expected when they authored such statuses, this
change removes the sensitivity enforcement.
signup-info-prompt
Akihiko Odaki 2018-06-04 11:46:14 +09:00 committed by Eugen Rochko
parent 73923ea6c4
commit 5bf5003384
2 changed files with 1 additions and 6 deletions

View File

@ -187,7 +187,6 @@ class Status < ApplicationRecord
before_validation :set_reblog before_validation :set_reblog
before_validation :set_visibility before_validation :set_visibility
before_validation :set_conversation before_validation :set_conversation
before_validation :set_sensitivity
before_validation :set_local before_validation :set_local
class << self class << self
@ -368,10 +367,6 @@ class Status < ApplicationRecord
self.sensitive = false if sensitive.nil? self.sensitive = false if sensitive.nil?
end end
def set_sensitivity
self.sensitive = sensitive || spoiler_text.present?
end
def set_conversation def set_conversation
self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply

View File

@ -28,7 +28,7 @@ class PostStatusService < BaseService
status = account.statuses.create!(text: text, status = account.statuses.create!(text: text,
media_attachments: media || [], media_attachments: media || [],
thread: in_reply_to, thread: in_reply_to,
sensitive: (options[:sensitive].nil? ? account.user&.setting_default_sensitive : options[:sensitive]), sensitive: (options[:sensitive].nil? ? account.user&.setting_default_sensitive : options[:sensitive]) || options[:spoiler_text].present?,
spoiler_text: options[:spoiler_text] || '', spoiler_text: options[:spoiler_text] || '',
visibility: options[:visibility] || account.user&.setting_default_privacy, visibility: options[:visibility] || account.user&.setting_default_privacy,
language: language_from_option(options[:language]) || LanguageDetector.instance.detect(text, account), language: language_from_option(options[:language]) || LanguageDetector.instance.detect(text, account),