]> cat aescling's git repositories - mastodon.git/commitdiff
Add support for setting Content Warning for CW-less outgoing toots
authorThibaut Girka <thib@sitedethib.com>
Sat, 30 May 2020 14:47:17 +0000 (16:47 +0200)
committerThibG <thib@sitedethib.com>
Sat, 30 May 2020 16:27:00 +0000 (18:27 +0200)
app/models/form/admin_settings.rb
app/serializers/activitypub/note_serializer.rb
app/views/admin/settings/edit.html.haml
config/locales-glitch/en.yml
config/settings.yml

index 84a65686416bef93d071965f9400864dbfd96501..fcec3e686c7fe39bdb7f6d4da2a53a0e6cc3dafc 100644 (file)
@@ -41,6 +41,7 @@ class Form::AdminSettings
     show_domain_blocks
     show_domain_blocks_rationale
     noindex
+    outgoing_spoilers
   ).freeze
 
   BOOLEAN_KEYS = %i(
index dce506fa2326bbec592b3176dd617c2bdc828d10..96e94d7972b8c6dd3142cf7d3e67454c5809f6d2 100644 (file)
@@ -35,7 +35,11 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer
   end
 
   def summary
-    object.spoiler_text.presence
+    object.spoiler_text.presence || Setting.outgoing_spoilers.presence
+  end
+
+  def sensitive
+    object.sensitive || Setting.outgoing_spoilers.present?
   end
 
   def content
index bff706389774409d207ea10054d828a520623684..108846ca925b83d93f981a4d27d4f196ba96588e 100644 (file)
     .fields-row__column.fields-row__column-6.fields-group
       = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label: t('admin.settings.domain_blocks_rationale.title'), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
 
+  .fields-group
+    = f.input :outgoing_spoilers, wrapper: :with_label, label: t('admin.settings.outgoing_spoilers.title'), hint: t('admin.settings.outgoing_spoilers.desc_html')
+
   .fields-group
     = f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 } unless whitelist_mode?
     = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, label: t('admin.settings.registrations.closed_message.title'), hint: t('admin.settings.registrations.closed_message.desc_html'), input_html: { rows: 8 }
index c7004666a7fa0c562dc18506cae11577233e65c9..6268727a78511e82bb04d81d6820f919de0d4fca 100644 (file)
@@ -7,6 +7,9 @@ en:
       enable_keybase:
         desc_html: Allow your users to prove their identity via keybase
         title: Enable keybase integration
+      outgoing_spoilers:
+        desc_html: When federating toots, add this content warning to toots that do not have one. It is useful if your server is specialized in content other servers might want to have under a Content Warning. Media will also be marked as sensitive.
+        title: Content warning for outgoing toots
       hide_followers_count:
         desc_html: Do not show followers count on user profiles
         title: Hide followers count
index 00a4421e4cb7b2d5c3262527d0e83dfe6df78edd..c61454e9ebc79385861f1dad00b259d1cf5a724d 100644 (file)
@@ -77,6 +77,7 @@ defaults: &defaults
   spam_check_enabled: true
   show_domain_blocks: 'disabled'
   show_domain_blocks_rationale: 'disabled'
+  outgoing_spoilers: ''
 
 development:
   <<: *defaults