From 418d092afa81e2c8fe8ac6838fc4b5eb0af6a782 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 26 Feb 2019 10:55:40 +0100 Subject: Playlist server API --- .../custom-validators/activitypub/activity.ts | 3 +++ .../custom-validators/activitypub/playlist.ts | 25 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 server/helpers/custom-validators/activitypub/playlist.ts (limited to 'server/helpers/custom-validators/activitypub') diff --git a/server/helpers/custom-validators/activitypub/activity.ts b/server/helpers/custom-validators/activitypub/activity.ts index b24590d9d..e0d170d9d 100644 --- a/server/helpers/custom-validators/activitypub/activity.ts +++ b/server/helpers/custom-validators/activitypub/activity.ts @@ -9,6 +9,7 @@ import { isViewActivityValid } from './view' import { exists } from '../misc' import { isCacheFileObjectValid } from './cache-file' import { isFlagActivityValid } from './flag' +import { isPlaylistObjectValid } from './playlist' function isRootActivityValid (activity: any) { return Array.isArray(activity['@context']) && ( @@ -78,6 +79,7 @@ function checkCreateActivity (activity: any) { isViewActivityValid(activity.object) || isDislikeActivityValid(activity.object) || isFlagActivityValid(activity.object) || + isPlaylistObjectValid(activity.object) || isCacheFileObjectValid(activity.object) || sanitizeAndCheckVideoCommentObject(activity.object) || @@ -89,6 +91,7 @@ function checkUpdateActivity (activity: any) { return isBaseActivityValid(activity, 'Update') && ( isCacheFileObjectValid(activity.object) || + isPlaylistObjectValid(activity.object) || sanitizeAndCheckVideoTorrentObject(activity.object) || sanitizeAndCheckActorObject(activity.object) ) diff --git a/server/helpers/custom-validators/activitypub/playlist.ts b/server/helpers/custom-validators/activitypub/playlist.ts new file mode 100644 index 000000000..ecdc7975e --- /dev/null +++ b/server/helpers/custom-validators/activitypub/playlist.ts @@ -0,0 +1,25 @@ +import { exists } from '../misc' +import { PlaylistObject } from '../../../../shared/models/activitypub/objects/playlist-object' +import * as validator from 'validator' +import { PlaylistElementObject } from '../../../../shared/models/activitypub/objects/playlist-element-object' +import { isActivityPubUrlValid } from './misc' + +function isPlaylistObjectValid (object: PlaylistObject) { + return exists(object) && + object.type === 'Playlist' && + validator.isInt(object.totalItems + '') +} + +function isPlaylistElementObjectValid (object: PlaylistElementObject) { + return exists(object) && + object.type === 'PlaylistElement' && + validator.isInt(object.position + '') && + isActivityPubUrlValid(object.url) +} + +// --------------------------------------------------------------------------- + +export { + isPlaylistObjectValid, + isPlaylistElementObjectValid +} -- cgit v1.2.3