Add ability to import video with youtube-dl
[oweals/peertube.git] / server / helpers / custom-validators / video-imports.ts
1 import 'express-validator'
2 import 'multer'
3 import * as validator from 'validator'
4 import { CONSTRAINTS_FIELDS, VIDEO_IMPORT_STATES } from '../../initializers'
5 import { exists } from './misc'
6
7 function isVideoImportTargetUrlValid (url: string) {
8   const isURLOptions = {
9     require_host: true,
10     require_tld: true,
11     require_protocol: true,
12     require_valid_protocol: true,
13     protocols: [ 'http', 'https' ]
14   }
15
16   return exists(url) &&
17     validator.isURL('' + url, isURLOptions) &&
18     validator.isLength('' + url, CONSTRAINTS_FIELDS.VIDEO_IMPORTS.URL)
19 }
20
21 function isVideoImportStateValid (value: any) {
22   return exists(value) && VIDEO_IMPORT_STATES[ value ] !== undefined
23 }
24
25 // ---------------------------------------------------------------------------
26
27 export {
28   isVideoImportStateValid,
29   isVideoImportTargetUrlValid
30 }