diff options
author | Chocobozzz <me@florianbigard.com> | 2023-01-19 15:04:10 +0100 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2023-01-19 15:04:10 +0100 |
commit | a68ccaead667f1b976e0fb10c8b1087af25547f2 (patch) | |
tree | b23ef1915c1b8bdb6b88c10d0dee5749fa874133 /server/models | |
parent | 789ba349318e7ff012590491e76087a1204cccd4 (diff) | |
download | PeerTube-a68ccaead667f1b976e0fb10c8b1087af25547f2.tar.gz PeerTube-a68ccaead667f1b976e0fb10c8b1087af25547f2.tar.zst PeerTube-a68ccaead667f1b976e0fb10c8b1087af25547f2.zip |
(breaking): Always list nsfw videos in playlists
Keep the same behaviour as unlisted videos
The frontend is in charge to blur the video element if the nsfw setting
is "hide" or "blur"
Diffstat (limited to 'server/models')
-rw-r--r-- | server/models/video/video-playlist-element.ts | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/server/models/video/video-playlist-element.ts b/server/models/video/video-playlist-element.ts index 48f4ed5a9..b832f9768 100644 --- a/server/models/video/video-playlist-element.ts +++ b/server/models/video/video-playlist-element.ts | |||
@@ -309,7 +309,23 @@ export class VideoPlaylistElementModel extends Model<Partial<AttributesOnly<Vide | |||
309 | return VideoPlaylistElementModel.increment({ position: by }, query) | 309 | return VideoPlaylistElementModel.increment({ position: by }, query) |
310 | } | 310 | } |
311 | 311 | ||
312 | getType (this: MVideoPlaylistElementFormattable, displayNSFW?: boolean, accountId?: number) { | 312 | toFormattedJSON ( |
313 | this: MVideoPlaylistElementFormattable, | ||
314 | options: { accountId?: number } = {} | ||
315 | ): VideoPlaylistElement { | ||
316 | return { | ||
317 | id: this.id, | ||
318 | position: this.position, | ||
319 | startTimestamp: this.startTimestamp, | ||
320 | stopTimestamp: this.stopTimestamp, | ||
321 | |||
322 | type: this.getType(options.accountId), | ||
323 | |||
324 | video: this.getVideoElement(options.accountId) | ||
325 | } | ||
326 | } | ||
327 | |||
328 | getType (this: MVideoPlaylistElementFormattable, accountId?: number) { | ||
313 | const video = this.Video | 329 | const video = this.Video |
314 | 330 | ||
315 | if (!video) return VideoPlaylistElementType.DELETED | 331 | if (!video) return VideoPlaylistElementType.DELETED |
@@ -323,34 +339,17 @@ export class VideoPlaylistElementModel extends Model<Partial<AttributesOnly<Vide | |||
323 | if (video.privacy === VideoPrivacy.PRIVATE || video.privacy === VideoPrivacy.INTERNAL) return VideoPlaylistElementType.PRIVATE | 339 | if (video.privacy === VideoPrivacy.PRIVATE || video.privacy === VideoPrivacy.INTERNAL) return VideoPlaylistElementType.PRIVATE |
324 | 340 | ||
325 | if (video.isBlacklisted() || video.isBlocked()) return VideoPlaylistElementType.UNAVAILABLE | 341 | if (video.isBlacklisted() || video.isBlocked()) return VideoPlaylistElementType.UNAVAILABLE |
326 | if (video.nsfw === true && displayNSFW === false) return VideoPlaylistElementType.UNAVAILABLE | ||
327 | 342 | ||
328 | return VideoPlaylistElementType.REGULAR | 343 | return VideoPlaylistElementType.REGULAR |
329 | } | 344 | } |
330 | 345 | ||
331 | getVideoElement (this: MVideoPlaylistElementFormattable, displayNSFW?: boolean, accountId?: number) { | 346 | getVideoElement (this: MVideoPlaylistElementFormattable, accountId?: number) { |
332 | if (!this.Video) return null | 347 | if (!this.Video) return null |
333 | if (this.getType(displayNSFW, accountId) !== VideoPlaylistElementType.REGULAR) return null | 348 | if (this.getType(accountId) !== VideoPlaylistElementType.REGULAR) return null |
334 | 349 | ||
335 | return this.Video.toFormattedJSON() | 350 | return this.Video.toFormattedJSON() |
336 | } | 351 | } |
337 | 352 | ||
338 | toFormattedJSON ( | ||
339 | this: MVideoPlaylistElementFormattable, | ||
340 | options: { displayNSFW?: boolean, accountId?: number } = {} | ||
341 | ): VideoPlaylistElement { | ||
342 | return { | ||
343 | id: this.id, | ||
344 | position: this.position, | ||
345 | startTimestamp: this.startTimestamp, | ||
346 | stopTimestamp: this.stopTimestamp, | ||
347 | |||
348 | type: this.getType(options.displayNSFW, options.accountId), | ||
349 | |||
350 | video: this.getVideoElement(options.displayNSFW, options.accountId) | ||
351 | } | ||
352 | } | ||
353 | |||
354 | toActivityPubObject (this: MVideoPlaylistElementAP): PlaylistElementObject { | 353 | toActivityPubObject (this: MVideoPlaylistElementAP): PlaylistElementObject { |
355 | const base: PlaylistElementObject = { | 354 | const base: PlaylistElementObject = { |
356 | id: this.url, | 355 | id: this.url, |