1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-05 19:42:24 +02:00

Refractor activity pub lib/helpers

This commit is contained in:
Chocobozzz 2017-11-20 09:43:39 +01:00
parent eb8b27c93e
commit 5414139835
No known key found for this signature in database
GPG key ID: 583A612D890159BE
47 changed files with 844 additions and 498 deletions

View file

@ -1,7 +1,6 @@
import * as validator from 'validator'
import { ACTIVITY_PUB } from '../../../initializers'
import { exists, isDateValid, isUUIDValid } from '../misc'
import { isVideoChannelDescriptionValid, isVideoChannelNameValid } from '../video-channels'
import {
isVideoAbuseReasonValid,
isVideoDurationValid,
@ -28,6 +27,13 @@ function isVideoTorrentDeleteActivityValid (activity: any) {
return isBaseActivityValid(activity, 'Delete')
}
function isVideoFlagValid (activity: any) {
return isBaseActivityValid(activity, 'Create') &&
activity.object.type === 'Flag' &&
isVideoAbuseReasonValid(activity.object.content) &&
isActivityPubUrlValid(activity.object.object)
}
function isActivityPubVideoDurationValid (value: string) {
// https://www.w3.org/TR/activitystreams-vocabulary/#dfn-duration
return exists(value) &&
@ -57,57 +63,13 @@ function isVideoTorrentObjectValid (video: any) {
video.url.length !== 0
}
function isVideoFlagValid (activity: any) {
return isBaseActivityValid(activity, 'Create') &&
activity.object.type === 'Flag' &&
isVideoAbuseReasonValid(activity.object.content) &&
isActivityPubUrlValid(activity.object.object)
}
function isAnnounceValid (activity: any) {
return isBaseActivityValid(activity, 'Announce') &&
(
isVideoChannelCreateActivityValid(activity.object) ||
isVideoTorrentAddActivityValid(activity.object)
)
}
function isVideoChannelCreateActivityValid (activity: any) {
return isBaseActivityValid(activity, 'Create') &&
isVideoChannelObjectValid(activity.object)
}
function isVideoChannelUpdateActivityValid (activity: any) {
return isBaseActivityValid(activity, 'Update') &&
isVideoChannelObjectValid(activity.object)
}
function isVideoChannelDeleteActivityValid (activity: any) {
return isBaseActivityValid(activity, 'Delete')
}
function isVideoChannelObjectValid (videoChannel: any) {
return videoChannel.type === 'VideoChannel' &&
isActivityPubUrlValid(videoChannel.id) &&
isVideoChannelNameValid(videoChannel.name) &&
isVideoChannelDescriptionValid(videoChannel.content) &&
isDateValid(videoChannel.published) &&
isDateValid(videoChannel.updated) &&
isUUIDValid(videoChannel.uuid)
}
// ---------------------------------------------------------------------------
export {
isVideoTorrentAddActivityValid,
isVideoChannelCreateActivityValid,
isVideoTorrentUpdateActivityValid,
isVideoChannelUpdateActivityValid,
isVideoChannelDeleteActivityValid,
isVideoTorrentDeleteActivityValid,
isVideoFlagValid,
isAnnounceValid,
isVideoChannelObjectValid
isVideoFlagValid
}
// ---------------------------------------------------------------------------