2 import { UploadFilesForCheck } from 'express'
3 import validator from 'validator'
4 import { CONSTRAINTS_FIELDS, MIMETYPES, VIDEO_IMPORT_STATES } from '../../initializers/constants'
5 import { exists, isFileValid } from './misc'
7 function isVideoImportTargetUrlValid (url: string) {
11 require_protocol: true,
12 require_valid_protocol: true,
13 protocols: [ 'http', 'https' ]
17 validator.isURL('' + url, isURLOptions) &&
18 validator.isLength('' + url, CONSTRAINTS_FIELDS.VIDEO_IMPORTS.URL)
21 function isVideoImportStateValid (value: any) {
22 return exists(value) && VIDEO_IMPORT_STATES[value] !== undefined
25 const videoTorrentImportRegex = Object.keys(MIMETYPES.TORRENT.MIMETYPE_EXT)
26 .concat([ 'application/octet-stream' ]) // MacOS sends application/octet-stream
29 function isVideoImportTorrentFile (files: UploadFilesForCheck) {
32 mimeTypeRegex: videoTorrentImportRegex,
34 maxSize: CONSTRAINTS_FIELDS.VIDEO_IMPORTS.TORRENT_FILE.FILE_SIZE.max,
39 // ---------------------------------------------------------------------------
42 isVideoImportStateValid,
43 isVideoImportTargetUrlValid,
44 isVideoImportTorrentFile