From b84f203459bd4ba22eae2ed7680e7f75308dd8e9 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 14 May 2025 14:07:28 +0200 Subject: [PATCH] Remove shocking/disturbing nsfw flag It's too vague --- .../shared-manage/common/video-edit.model.ts | 8 -------- .../moderation/video-moderation.component.html | 6 ------ .../moderation/video-moderation.component.ts | 3 --- .../app/shared/shared-main/video/video.service.ts | 4 ---- .../user-video-settings.component.html | 12 ------------ .../user-video-settings.component.ts | 5 ----- .../src/shared/nsfw/peertube-nsfw-component.ts | 4 ---- packages/models/src/videos/nsfw-flag.enum.ts | 6 +----- packages/tests/src/api/search/search-index.ts | 6 +++--- packages/tests/src/api/videos/video-nsfw.ts | 6 +++--- support/doc/api/openapi.yaml | 4 +--- 11 files changed, 8 insertions(+), 56 deletions(-) diff --git a/client/src/app/+videos-publish-manage/shared-manage/common/video-edit.model.ts b/client/src/app/+videos-publish-manage/shared-manage/common/video-edit.model.ts index b518184fa..54120d605 100644 --- a/client/src/app/+videos-publish-manage/shared-manage/common/video-edit.model.ts +++ b/client/src/app/+videos-publish-manage/shared-manage/common/video-edit.model.ts @@ -44,7 +44,6 @@ type CommonUpdateForm = nsfwFlagViolent?: boolean nsfwFlagSex?: boolean - nsfwFlagShocking?: boolean } type LiveUpdateForm = Omit & { @@ -462,12 +461,6 @@ export class VideoEdit { : this.common.nsfwFlags & ~NSFWFlag.EXPLICIT_SEX } - if (values.nsfwFlagShocking !== undefined) { - this.common.nsfwFlags = values.nsfwFlagShocking - ? this.common.nsfwFlags | NSFWFlag.SHOCKING_DISTURBING - : this.common.nsfwFlags & ~NSFWFlag.SHOCKING_DISTURBING - } - if (values.nsfwFlagViolent !== undefined) { this.common.nsfwFlags = values.nsfwFlagViolent ? this.common.nsfwFlags | NSFWFlag.VIOLENT @@ -532,7 +525,6 @@ export class VideoEdit { nsfw: this.common.nsfw, nsfwFlagSex: (this.common.nsfwFlags & NSFWFlag.EXPLICIT_SEX) === NSFWFlag.EXPLICIT_SEX, - nsfwFlagShocking: (this.common.nsfwFlags & NSFWFlag.SHOCKING_DISTURBING) === NSFWFlag.SHOCKING_DISTURBING, nsfwFlagViolent: (this.common.nsfwFlags & NSFWFlag.VIOLENT) === NSFWFlag.VIOLENT, nsfwSummary: this.common.nsfwSummary, diff --git a/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.html b/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.html index 215cae4e6..cb7602dcc 100644 --- a/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.html +++ b/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.html @@ -42,12 +42,6 @@ - - - Parts of the video may shock or disturb - - - Content may be perceived as sexually explicit material diff --git a/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.ts b/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.ts index db32d3df1..384cd330b 100644 --- a/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.ts +++ b/client/src/app/+videos-publish-manage/shared-manage/moderation/video-moderation.component.ts @@ -22,7 +22,6 @@ type Form = { nsfw: FormControl nsfwFlagViolent: FormControl - nsfwFlagShocking: FormControl nsfwFlagSex: FormControl nsfwSummary: FormControl @@ -82,7 +81,6 @@ export class VideoModerationComponent implements OnInit, OnDestroy { commentsPolicy: null, nsfw: null, nsfwFlagViolent: null, - nsfwFlagShocking: null, nsfwFlagSex: null, nsfwSummary: VIDEO_NSFW_SUMMARY_VALIDATOR } @@ -125,7 +123,6 @@ export class VideoModerationComponent implements OnInit, OnDestroy { private updateNSFWControls (nsfw: boolean) { const controls = [ this.form.controls.nsfwFlagViolent, - this.form.controls.nsfwFlagShocking, this.form.controls.nsfwFlagSex, this.form.controls.nsfwSummary ] diff --git a/client/src/app/shared/shared-main/video/video.service.ts b/client/src/app/shared/shared-main/video/video.service.ts index 9edded864..6f1258b2b 100644 --- a/client/src/app/shared/shared-main/video/video.service.ts +++ b/client/src/app/shared/shared-main/video/video.service.ts @@ -543,10 +543,6 @@ export class VideoService { flags.push($localize`violence`) } - if ((video.nsfwFlags & NSFWFlag.SHOCKING_DISTURBING) === NSFWFlag.SHOCKING_DISTURBING) { - flags.push($localize`shocking content`) - } - if ((video.nsfwFlags & NSFWFlag.EXPLICIT_SEX) === NSFWFlag.EXPLICIT_SEX) { flags.push($localize`explicit sex`) } diff --git a/client/src/app/shared/shared-user-settings/user-video-settings.component.html b/client/src/app/shared/shared-user-settings/user-video-settings.component.html index 21ee37161..32bf4b37a 100644 --- a/client/src/app/shared/shared-user-settings/user-video-settings.component.html +++ b/client/src/app/shared/shared-user-settings/user-video-settings.component.html @@ -33,18 +33,6 @@ > -
- -
-
nsfwFlagViolent: FormControl - nsfwFlagShocking: FormControl nsfwFlagSex: FormControl p2pEnabled: FormControl @@ -117,7 +116,6 @@ export class UserVideoSettingsComponent implements OnInit, OnDestroy { this.form.patchValue({ nsfwPolicy: this.user().nsfwPolicy || defaultNSFWPolicy, nsfwFlagViolent: this.buildNSFWFormFlag(NSFWFlag.VIOLENT), - nsfwFlagShocking: this.buildNSFWFormFlag(NSFWFlag.SHOCKING_DISTURBING), nsfwFlagSex: this.buildNSFWFormFlag(NSFWFlag.EXPLICIT_SEX), p2pEnabled: this.user().p2pEnabled, @@ -139,7 +137,6 @@ export class UserVideoSettingsComponent implements OnInit, OnDestroy { const obj: BuildFormArgument = { nsfwPolicy: null, nsfwFlagViolent: null, - nsfwFlagShocking: null, nsfwFlagSex: null, p2pEnabled: null, @@ -187,7 +184,6 @@ export class UserVideoSettingsComponent implements OnInit, OnDestroy { if (onlyKeys) { const hasNSFWFlags = onlyKeys.includes('nsfwFlagViolent') || - onlyKeys.includes('nsfwFlagShocking') || onlyKeys.includes('nsfwFlagSex') const onlyKeysWithNSFW = hasNSFWFlags @@ -257,7 +253,6 @@ export class UserVideoSettingsComponent implements OnInit, OnDestroy { let result = NSFWFlag.NONE if (this.form.value.nsfwFlagViolent === type) result |= NSFWFlag.VIOLENT - if (this.form.value.nsfwFlagShocking === type) result |= NSFWFlag.SHOCKING_DISTURBING if (this.form.value.nsfwFlagSex === type) result |= NSFWFlag.EXPLICIT_SEX return result diff --git a/client/src/standalone/player/src/shared/nsfw/peertube-nsfw-component.ts b/client/src/standalone/player/src/shared/nsfw/peertube-nsfw-component.ts index d821f1834..32c095715 100644 --- a/client/src/standalone/player/src/shared/nsfw/peertube-nsfw-component.ts +++ b/client/src/standalone/player/src/shared/nsfw/peertube-nsfw-component.ts @@ -73,10 +73,6 @@ class PeerTubeNSFWComponent extends Component { flagStrings.push(this.player().localize(`Violence`)) } - if ((flags & NSFWFlag.SHOCKING_DISTURBING) === NSFWFlag.SHOCKING_DISTURBING) { - flagStrings.push(this.player().localize(`Shocking Content`)) - } - if ((flags & NSFWFlag.EXPLICIT_SEX) === NSFWFlag.EXPLICIT_SEX) { flagStrings.push(this.player().localize(`Explicit Sex`)) } diff --git a/packages/models/src/videos/nsfw-flag.enum.ts b/packages/models/src/videos/nsfw-flag.enum.ts index 23add25c2..b359b3d39 100644 --- a/packages/models/src/videos/nsfw-flag.enum.ts +++ b/packages/models/src/videos/nsfw-flag.enum.ts @@ -1,22 +1,19 @@ export const NSFWFlag = { NONE: 0 << 0, VIOLENT: 1 << 0, - SHOCKING_DISTURBING: 1 << 1, - EXPLICIT_SEX: 1 << 2 + EXPLICIT_SEX: 1 << 1 } as const export type NSFWFlagType = typeof NSFWFlag[keyof typeof NSFWFlag] export type NSFWFlagString = | 'violent' - | 'shockingOrDisturbing' | 'explicitSex' const nsfwFlagsToStringMap: { [key in NSFWFlagString]: NSFWFlagType } = { violent: NSFWFlag.VIOLENT, - shockingOrDisturbing: NSFWFlag.SHOCKING_DISTURBING, explicitSex: NSFWFlag.EXPLICIT_SEX } as const @@ -24,7 +21,6 @@ const nsfwFlagsStringToEnumMap: { [key in NSFWFlagType]: NSFWFlagString } = { [NSFWFlag.VIOLENT]: 'violent', - [NSFWFlag.SHOCKING_DISTURBING]: 'shockingOrDisturbing', [NSFWFlag.EXPLICIT_SEX]: 'explicitSex' } as const diff --git a/packages/tests/src/api/search/search-index.ts b/packages/tests/src/api/search/search-index.ts index 7dcd43047..be40dd6dc 100644 --- a/packages/tests/src/api/search/search-index.ts +++ b/packages/tests/src/api/search/search-index.ts @@ -201,10 +201,10 @@ describe('Test index search', function () { } await checkNSFW({ nsfw: 'false', nsfwFlagsIncluded: NSFWFlag.VIOLENT }, true) - await checkNSFW({ nsfw: 'false', nsfwFlagsIncluded: NSFWFlag.VIOLENT | NSFWFlag.SHOCKING_DISTURBING }, true) + await checkNSFW({ nsfw: 'false', nsfwFlagsIncluded: NSFWFlag.VIOLENT | NSFWFlag.EXPLICIT_SEX }, true) await checkNSFW({ nsfw: 'true', nsfwFlagsExcluded: NSFWFlag.VIOLENT }, false) - await checkNSFW({ nsfw: 'both', nsfwFlagsExcluded: NSFWFlag.VIOLENT | NSFWFlag.SHOCKING_DISTURBING }, false) - await checkNSFW({ nsfw: 'false', nsfwFlagsIncluded: NSFWFlag.SHOCKING_DISTURBING }, false) + await checkNSFW({ nsfw: 'both', nsfwFlagsExcluded: NSFWFlag.VIOLENT | NSFWFlag.EXPLICIT_SEX }, false) + await checkNSFW({ nsfw: 'false', nsfwFlagsIncluded: NSFWFlag.EXPLICIT_SEX }, false) }) it('Should search by host', async function () { diff --git a/packages/tests/src/api/videos/video-nsfw.ts b/packages/tests/src/api/videos/video-nsfw.ts index a630ea7ab..7e869badd 100644 --- a/packages/tests/src/api/videos/video-nsfw.ts +++ b/packages/tests/src/api/videos/video-nsfw.ts @@ -127,7 +127,7 @@ describe('Test video NSFW policy', function () { attributes: { name: 'nsfw sex', nsfw: true, - nsfwFlags: NSFWFlag.SHOCKING_DISTURBING | NSFWFlag.EXPLICIT_SEX, + nsfwFlags: NSFWFlag.VIOLENT | NSFWFlag.EXPLICIT_SEX, nsfwSummary: 'This is a shocking and disturbing video', category: 1 } @@ -140,7 +140,7 @@ describe('Test video NSFW policy', function () { const video = await server.videos.get({ id: uuid }) expect(video.nsfw).to.be.true - expect(video.nsfwFlags).to.equal(6) + expect(video.nsfwFlags).to.equal(3) expect(video.nsfwSummary).to.equal('This is a shocking and disturbing video') } }) @@ -556,7 +556,7 @@ describe('Test video NSFW policy', function () { nsfwPolicy: 'do_not_list', nsfwFlagsHidden: NSFWFlag.EXPLICIT_SEX, nsfwFlagsWarned: NSFWFlag.NONE, - nsfwFlagsBlurred: NSFWFlag.SHOCKING_DISTURBING, + nsfwFlagsBlurred: NSFWFlag.NONE, nsfwFlagsDisplayed: NSFWFlag.VIOLENT }) diff --git a/support/doc/api/openapi.yaml b/support/doc/api/openapi.yaml index 24677dd2b..119d6ce8c 100644 --- a/support/doc/api/openapi.yaml +++ b/support/doc/api/openapi.yaml @@ -8215,9 +8215,7 @@ components: - `1` VIOLENT - - `2` SHOCKING_DISTURBING - - - `4` EXPLICIT_SEX + - `2` EXPLICIT_SEX UserRole: type: integer