X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=server%2Fhelpers%2Fcustom-validators%2Factivitypub%2Fmisc.ts;h=ff15f115f8d81145049083f7179f9b295ab3f243;hb=9452d4fd3321148fb80b64a67bd9983fee6c208e;hp=f1762d11ca0dd074caa7d2e0b3bb2a8d4d88928e;hpb=73471b1a52f242e86364ffb077ea6cadb3b07ae2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/activitypub/misc.ts b/server/helpers/custom-validators/activitypub/misc.ts index f1762d11c..ff15f115f 100644 --- a/server/helpers/custom-validators/activitypub/misc.ts +++ b/server/helpers/custom-validators/activitypub/misc.ts @@ -1,6 +1,6 @@ -import * as validator from 'validator' -import { CONSTRAINTS_FIELDS } from '../../../initializers' -import { isTestInstance } from '../../core-utils' +import validator from 'validator' +import { CONSTRAINTS_FIELDS } from '../../../initializers/constants' +import { isTestOrDevInstance } from '../../core-utils' import { exists } from '../misc' function isUrlValid (url: string) { @@ -13,7 +13,7 @@ function isUrlValid (url: string) { } // We validate 'localhost', so we don't have the top level domain - if (isTestInstance()) { + if (isTestOrDevInstance()) { isURLOptions.require_tld = false } @@ -25,8 +25,7 @@ function isActivityPubUrlValid (url: string) { } function isBaseActivityValid (activity: any, type: string) { - return (activity['@context'] === undefined || Array.isArray(activity['@context'])) && - activity.type === type && + return activity.type === type && isActivityPubUrlValid(activity.id) && isObjectValid(activity.actor) && isUrlCollectionValid(activity.to) && @@ -58,10 +57,19 @@ function setValidAttributedTo (obj: any) { return true } +function isActivityPubVideoDurationValid (value: string) { + // https://www.w3.org/TR/activitystreams-vocabulary/#dfn-duration + return exists(value) && + typeof value === 'string' && + value.startsWith('PT') && + value.endsWith('S') +} + export { isUrlValid, isActivityPubUrlValid, isBaseActivityValid, setValidAttributedTo, - isObjectValid + isObjectValid, + isActivityPubVideoDurationValid }