]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/helpers/custom-validators/activitypub/cache-file.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-validators / activitypub / cache-file.ts
1 import { isActivityPubUrlValid } from './misc'
2 import { isRemoteVideoUrlValid } from './videos'
3 import { exists, isDateValid } from '../misc'
4 import { CacheFileObject } from '../../../../shared/models/activitypub/objects'
5
6 function isCacheFileObjectValid (object: CacheFileObject) {
7 return exists(object) &&
8 object.type === 'CacheFile' &&
9 (object.expires === null || isDateValid(object.expires)) &&
10 isActivityPubUrlValid(object.object) &&
11 (isRemoteVideoUrlValid(object.url) || isPlaylistRedundancyUrlValid(object.url))
12 }
13
14 // ---------------------------------------------------------------------------
15
16 export {
17 isCacheFileObjectValid
18 }
19
20 // ---------------------------------------------------------------------------
21
22 function isPlaylistRedundancyUrlValid (url: any) {
23 return url.type === 'Link' &&
24 (url.mediaType || url.mimeType) === 'application/x-mpegURL' &&
25 isActivityPubUrlValid(url.href)
26 }