diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 84a65686416..fcec3e686c7 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 dce506fa232..96e94d7972b 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 bff70638977..108846ca925 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 c7004666a7f..6268727a785 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 00a4421e4cb..c61454e9ebc 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