1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 09:49:20 +02:00

Remove shocking/disturbing nsfw flag

It's too vague
This commit is contained in:
Chocobozzz 2025-05-14 14:07:28 +02:00
parent 51aa83406e
commit b84f203459
No known key found for this signature in database
GPG key ID: 583A612D890159BE
11 changed files with 8 additions and 56 deletions

View file

@ -44,7 +44,6 @@ type CommonUpdateForm =
nsfwFlagViolent?: boolean
nsfwFlagSex?: boolean
nsfwFlagShocking?: boolean
}
type LiveUpdateForm = Omit<LiveVideoUpdate, 'replaySettings'> & {
@ -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,

View file

@ -42,12 +42,6 @@
</ng-template>
</my-peertube-checkbox>
<my-peertube-checkbox inputName="nsfwFlagShocking" formControlName="nsfwFlagShocking">
<ng-template ptTemplate="label">
<ng-container i18n>Parts of the video may shock or disturb</ng-container>
</ng-template>
</my-peertube-checkbox>
<my-peertube-checkbox inputName="nsfwFlagSex" formControlName="nsfwFlagSex">
<ng-template ptTemplate="label">
<ng-container i18n>Content may be perceived as sexually explicit material</ng-container>

View file

@ -22,7 +22,6 @@ type Form = {
nsfw: FormControl<boolean>
nsfwFlagViolent: FormControl<boolean>
nsfwFlagShocking: FormControl<boolean>
nsfwFlagSex: FormControl<boolean>
nsfwSummary: FormControl<string>
@ -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
]

View file

@ -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`)
}

View file

@ -33,18 +33,6 @@
></my-select-radio>
</div>
<div class="form-group mb-3">
<my-select-radio
[items]="nsfwFlagItems"
inputId="nsfwFlagShocking"
isGroup="true"
labelSecondary="true"
i18n-label
label="Shocking or disturbing content"
formControlName="nsfwFlagShocking"
></my-select-radio>
</div>
<div class="form-group mb-3">
<my-select-radio
[items]="nsfwFlagItems"

View file

@ -19,7 +19,6 @@ type NSFWFlagPolicyType = NSFWPolicyType | 'default'
type Form = {
nsfwPolicy: FormControl<NSFWPolicyType>
nsfwFlagViolent: FormControl<NSFWFlagPolicyType>
nsfwFlagShocking: FormControl<NSFWFlagPolicyType>
nsfwFlagSex: FormControl<NSFWFlagPolicyType>
p2pEnabled: FormControl<boolean>
@ -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

View file

@ -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`))
}

View file

@ -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

View file

@ -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 () {

View file

@ -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
})

View file

@ -8215,9 +8215,7 @@ components:
- `1` VIOLENT
- `2` SHOCKING_DISTURBING
- `4` EXPLICIT_SEX
- `2` EXPLICIT_SEX
UserRole:
type: integer