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:
parent
51aa83406e
commit
b84f203459
11 changed files with 8 additions and 56 deletions
|
@ -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,
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
]
|
||||
|
|
|
@ -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`)
|
||||
}
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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`))
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 () {
|
||||
|
|
|
@ -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
|
||||
})
|
||||
|
||||
|
|
|
@ -8215,9 +8215,7 @@ components:
|
|||
|
||||
- `1` VIOLENT
|
||||
|
||||
- `2` SHOCKING_DISTURBING
|
||||
|
||||
- `4` EXPLICIT_SEX
|
||||
- `2` EXPLICIT_SEX
|
||||
|
||||
UserRole:
|
||||
type: integer
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue