import { isVideoCommentCreateActivityValid, isVideoCommentDeleteActivityValid } from './video-comments'
import {
isVideoFlagValid,
- isVideoTorrentCreateActivityValid,
+ sanitizeAndCheckVideoTorrentCreateActivity,
isVideoTorrentDeleteActivityValid,
- isVideoTorrentUpdateActivityValid
+ sanitizeAndCheckVideoTorrentUpdateActivity
} from './videos'
import { isViewActivityValid } from './view'
function checkCreateActivity (activity: any) {
return isViewActivityValid(activity) ||
isDislikeActivityValid(activity) ||
- isVideoTorrentCreateActivityValid(activity) ||
+ sanitizeAndCheckVideoTorrentCreateActivity(activity) ||
isVideoFlagValid(activity) ||
isVideoCommentCreateActivityValid(activity)
}
function checkUpdateActivity (activity: any) {
- return isVideoTorrentUpdateActivityValid(activity) ||
+ return sanitizeAndCheckVideoTorrentUpdateActivity(activity) ||
isActorUpdateActivityValid(activity)
}
} from '../videos'
import { isActivityPubUrlValid, isBaseActivityValid, setValidAttributedTo } from './misc'
-function isVideoTorrentCreateActivityValid (activity: any) {
+function sanitizeAndCheckVideoTorrentCreateActivity (activity: any) {
return isBaseActivityValid(activity, 'Create') &&
- isVideoTorrentObjectValid(activity.object)
+ sanitizeAndCheckVideoTorrentObject(activity.object)
}
-function isVideoTorrentUpdateActivityValid (activity: any) {
+function sanitizeAndCheckVideoTorrentUpdateActivity (activity: any) {
return isBaseActivityValid(activity, 'Update') &&
- isVideoTorrentObjectValid(activity.object)
+ sanitizeAndCheckVideoTorrentObject(activity.object)
}
function isVideoTorrentDeleteActivityValid (activity: any) {
isVideoDurationValid(value.replace(/[^0-9]+/g, ''))
}
-function isVideoTorrentObjectValid (video: any) {
+function sanitizeAndCheckVideoTorrentObject (video: any) {
+ if (!setValidRemoteTags(video)) return false
+ if (!setValidRemoteVideoUrls(video)) return false
+ if (!setRemoteVideoTruncatedContent(video)) return false
+ if (!setValidAttributedTo(video)) return false
+
return video.type === 'Video' &&
isActivityPubUrlValid(video.id) &&
isVideoNameValid(video.name) &&
isActivityPubVideoDurationValid(video.duration) &&
isUUIDValid(video.uuid) &&
- setValidRemoteTags(video) &&
(!video.category || isRemoteNumberIdentifierValid(video.category)) &&
(!video.licence || isRemoteNumberIdentifierValid(video.licence)) &&
(!video.language || isRemoteStringIdentifierValid(video.language)) &&
isBooleanValid(video.commentsEnabled) &&
isDateValid(video.published) &&
isDateValid(video.updated) &&
- setRemoteVideoTruncatedContent(video) &&
(!video.content || isRemoteVideoContentValid(video.mediaType, video.content)) &&
isRemoteVideoIconValid(video.icon) &&
- setValidRemoteVideoUrls(video) &&
video.url.length !== 0 &&
- setValidAttributedTo(video) &&
video.attributedTo.length !== 0
}
// ---------------------------------------------------------------------------
export {
- isVideoTorrentCreateActivityValid,
- isVideoTorrentUpdateActivityValid,
+ sanitizeAndCheckVideoTorrentCreateActivity,
+ sanitizeAndCheckVideoTorrentUpdateActivity,
isVideoTorrentDeleteActivityValid,
isRemoteStringIdentifierValid,
isVideoFlagValid,
- isVideoTorrentObjectValid
+ sanitizeAndCheckVideoTorrentObject
}
// ---------------------------------------------------------------------------
import { ActivityIconObject } from '../../../shared/index'
import { VideoTorrentObject } from '../../../shared/models/activitypub/objects'
import { VideoPrivacy, VideoRateType } from '../../../shared/models/videos'
-import { isVideoTorrentObjectValid } from '../../helpers/custom-validators/activitypub/videos'
+import { sanitizeAndCheckVideoTorrentObject } from '../../helpers/custom-validators/activitypub/videos'
import { isVideoFileInfoHashValid } from '../../helpers/custom-validators/videos'
import { retryTransactionWrapper } from '../../helpers/database-utils'
import { logger } from '../../helpers/logger'
const { body } = await doRequest(options)
- if (isVideoTorrentObjectValid(body) === false) {
+ if (sanitizeAndCheckVideoTorrentObject(body) === false) {
logger.debug('Remote video JSON is not valid.', { body })
return undefined
}