]>
Commit | Line | Data |
---|---|---|
c729caf6 C |
1 | import validator from 'validator' |
2 | import { CONSTRAINTS_FIELDS } from '@server/initializers/constants' | |
92e66e04 C |
3 | import { buildTaskFileFieldname } from '@server/lib/video-studio' |
4 | import { VideoStudioTask } from '@shared/models' | |
c729caf6 C |
5 | import { isArray } from './misc' |
6 | import { isVideoFileMimeTypeValid, isVideoImageValid } from './videos' | |
7 | ||
92e66e04 | 8 | function isValidStudioTasksArray (tasks: any) { |
c729caf6 C |
9 | if (!isArray(tasks)) return false |
10 | ||
92e66e04 C |
11 | return tasks.length >= CONSTRAINTS_FIELDS.VIDEO_STUDIO.TASKS.min && |
12 | tasks.length <= CONSTRAINTS_FIELDS.VIDEO_STUDIO.TASKS.max | |
c729caf6 C |
13 | } |
14 | ||
92e66e04 | 15 | function isStudioCutTaskValid (task: VideoStudioTask) { |
c729caf6 C |
16 | if (task.name !== 'cut') return false |
17 | if (!task.options) return false | |
18 | ||
19 | const { start, end } = task.options | |
20 | if (!start && !end) return false | |
21 | ||
92e66e04 C |
22 | if (start && !validator.isInt(start + '', CONSTRAINTS_FIELDS.VIDEO_STUDIO.CUT_TIME)) return false |
23 | if (end && !validator.isInt(end + '', CONSTRAINTS_FIELDS.VIDEO_STUDIO.CUT_TIME)) return false | |
c729caf6 C |
24 | |
25 | if (!start || !end) return true | |
26 | ||
27 | return parseInt(start + '') < parseInt(end + '') | |
28 | } | |
29 | ||
92e66e04 | 30 | function isStudioTaskAddIntroOutroValid (task: VideoStudioTask, indice: number, files: Express.Multer.File[]) { |
c729caf6 C |
31 | const file = files.find(f => f.fieldname === buildTaskFileFieldname(indice, 'file')) |
32 | ||
33 | return (task.name === 'add-intro' || task.name === 'add-outro') && | |
34 | file && isVideoFileMimeTypeValid([ file ], null) | |
35 | } | |
36 | ||
92e66e04 | 37 | function isStudioTaskAddWatermarkValid (task: VideoStudioTask, indice: number, files: Express.Multer.File[]) { |
c729caf6 C |
38 | const file = files.find(f => f.fieldname === buildTaskFileFieldname(indice, 'file')) |
39 | ||
40 | return task.name === 'add-watermark' && | |
41 | file && isVideoImageValid([ file ], null, true) | |
42 | } | |
43 | ||
44 | // --------------------------------------------------------------------------- | |
45 | ||
46 | export { | |
92e66e04 | 47 | isValidStudioTasksArray, |
c729caf6 | 48 | |
92e66e04 C |
49 | isStudioCutTaskValid, |
50 | isStudioTaskAddIntroOutroValid, | |
51 | isStudioTaskAddWatermarkValid | |
c729caf6 | 52 | } |