From 5bf500338478f819a65d25636a0af61a482972d3 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Mon, 4 Jun 2018 11:46:14 +0900 Subject: [PATCH] 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. --- app/models/status.rb | 5 ----- app/services/post_status_service.rb | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/app/models/status.rb b/app/models/status.rb index 08ec36f38..b256069f7 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -187,7 +187,6 @@ class Status < ApplicationRecord before_validation :set_reblog before_validation :set_visibility before_validation :set_conversation - before_validation :set_sensitivity before_validation :set_local class << self @@ -368,10 +367,6 @@ class Status < ApplicationRecord self.sensitive = false if sensitive.nil? end - def set_sensitivity - self.sensitive = sensitive || spoiler_text.present? - end - def set_conversation self.reply = !(in_reply_to_id.nil? && thread.nil?) unless reply diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index 7a3576e2d..d072e581d 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -28,7 +28,7 @@ class PostStatusService < BaseService status = account.statuses.create!(text: text, media_attachments: media || [], 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] || '', visibility: options[:visibility] || account.user&.setting_default_privacy, language: language_from_option(options[:language]) || LanguageDetector.instance.detect(text, account),