aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/real-world/tools/upload.js
blob: efb91e228a5595d65aa8b8f436f45999caeca7c3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
'use strict'

const program = require('commander')
const fs = require('fs')

const utils = require('../../utils/videos')

program
  .option('-u, --url <url>', 'Server url')
  .option('-a, --access-token <token>', 'Access token')
  .option('-n, --name <name>', 'Video name')
  .option('-x, --nsfw', 'Video is Not Safe For Work')
  .option('-c, --category <category number>', 'Category number')
  .option('-l, --licence <licence number>', 'Licence number')
  .option('-g, --language <language number>', 'Language number')
  .option('-d, --description <description>', 'Video description')
  .option('-t, --tags <tags>', 'Video tags', list)
  .option('-f, --file <file>', 'Video absolute file path')
  .parse(process.argv)

if (
  !program.url ||
  !program.accessToken ||
  !program.name ||
  !program.category ||
  !program.licence ||
  !program.language ||
  !program.nsfw ||
  !program.description ||
  !program.tags ||
  !Array.isArray(program.tags) ||
  program.tags.length === 0 ||
  !program.file
) {
  throw new Error('All arguments are required.')
}

fs.access(program.file, fs.F_OK, function (err) {
  if (err) throw err

  upload(
    program.url,
    program.accessToken,
    program.name,
    program.category,
    program.licence,
    program.language,
    program.nsfw,
    program.description,
    program.tags,
    program.file
  )
})

// ----------------------------------------------------------------------------

function list (val) {
  return val.split(',')
}

function upload (url, accessToken, name, category, licence, language, nsfw, description, tags, fixture) {
  console.log('Uploading %s video...', program.name)

  const videoAttributes = {
    name,
    category,
    licence,
    language,
    nsfw,
    description,
    tags,
    fixture
  }
  utils.uploadVideo(url, accessToken, videoAttributes, function (err) {
    if (err) throw err

    console.log('Video uploaded.')
  })
}