]> cat aescling's git repositories - mastodon.git/commitdiff
Do not mark remote status sensitive even if spoiler text is present (#7395)
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Mon, 4 Jun 2018 02:46:14 +0000 (11:46 +0900)
committerEugen Rochko <eugen@zeonfederated.com>
Mon, 4 Jun 2018 02:46:14 +0000 (04:46 +0200)
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
app/services/post_status_service.rb

index 08ec36f381a1ea2c5872930bc84b0847259b5f95..b256069f774eb7bedeb504206b681bdbf702dbfa 100644 (file)
@@ -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
 
index 7a3576e2dea9c895837e20ee9bf9eee6ac605ab4..d072e581d58e8ef7ecd726451fdb549bd568e517 100644 (file)
@@ -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),