From 9e04b9d8dfc57304e9c409e2bc20d838d673d432 Mon Sep 17 00:00:00 2001 From: Thibaut Girka Date: Sat, 30 May 2020 16:47:17 +0200 Subject: [PATCH] Add support for setting Content Warning for CW-less outgoing toots --- app/models/form/admin_settings.rb | 1 + app/serializers/activitypub/note_serializer.rb | 6 +++++- app/views/admin/settings/edit.html.haml | 3 +++ config/locales-glitch/en.yml | 3 +++ config/settings.yml | 1 + 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 84a6568641..fcec3e686c 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -41,6 +41,7 @@ class Form::AdminSettings show_domain_blocks show_domain_blocks_rationale noindex + outgoing_spoilers ).freeze BOOLEAN_KEYS = %i( diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index dce506fa23..96e94d7972 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -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 diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index bff7063897..108846ca92 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -108,6 +108,9 @@ .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 } diff --git a/config/locales-glitch/en.yml b/config/locales-glitch/en.yml index c7004666a7..6268727a78 100644 --- a/config/locales-glitch/en.yml +++ b/config/locales-glitch/en.yml @@ -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 diff --git a/config/settings.yml b/config/settings.yml index 00a4421e4c..c61454e9eb 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -77,6 +77,7 @@ defaults: &defaults spam_check_enabled: true show_domain_blocks: 'disabled' show_domain_blocks_rationale: 'disabled' + outgoing_spoilers: '' development: <<: *defaults