+++ /dev/null
-import * as program from 'commander'
-import * as Promise from 'bluebird'
-import { isAbsolute, join } from 'path'
-
-import { readdirPromise } from '../helpers/core-utils'
-import { execCLI } from '../tests/utils/index'
-
-program
- .option('-u, --url <url>', 'Server url')
- .option('-U, --username <username>', 'Username')
- .option('-p, --password <token>', 'Password')
- .option('-i, --input <directory>', 'Videos directory absolute path')
- .option('-d, --description <description>', 'Video descriptions')
- .option('-c, --category <category>', 'Video categories')
- .option('-l, --licence <licence>', 'Video licences')
- .option('-t, --tags <tags>', 'Video tags', list)
- .parse(process.argv)
-
-if (
- !program['url'] ||
- !program['username'] ||
- !program['password'] ||
- !program['input'] ||
- !program['description'] ||
- !program['category'] ||
- !program['licence'] ||
- !program['tags']
-) {
- throw new Error('All arguments are required.')
-}
-
-if (isAbsolute(program['input']) === false) {
- throw new Error('Input path should be absolute.')
-}
-
-let command = `npm run ts-node -- ${__dirname}/get-access-token.ts`
-command += ` -u "${program['url']}"`
-command += ` -n "${program['username']}"`
-command += ` -p "${program['password']}"`
-
-execCLI(command)
- .then(stdout => {
- const accessToken = stdout.replace('\n', '')
-
- console.log(accessToken)
-
- return readdirPromise(program['input']).then(files => ({ accessToken, files }))
- })
- .then(({ accessToken, files }) => {
- return Promise.each(files, file => {
- const video = {
- tags: program['tags'],
- name: file,
- description: program['description'],
- category: program['category'],
- licence: program['licence']
- }
-
- let command = `npm run ts-node -- ${__dirname}/upload.ts`
- command += ` -u "${program['url']}"`
- command += ` -a "${accessToken}"`
- command += ` -n "${video.name}"`
- command += ` -d "${video.description}"`
- command += ` -c "${video.category}"`
- command += ` -l "${video.licence}"`
- command += ` -t "${video.tags.join(',')}"`
- command += ` -f "${join(program['input'], file)}"`
-
- return execCLI(command).then(stdout => console.log(stdout))
- })
- })
- .then(() => process.exit(0))
- .catch(err => {
- console.error(err)
- process.exit(-1)
- })
-
-// ----------------------------------------------------------------------------
-
-function list (val) {
- return val.split(',')
-}
import { access, constants } from 'fs'
import { isAbsolute } from 'path'
import { promisify } from 'util'
+import { getClient, login } from '../tests/utils'
+import { uploadVideo } from '../tests/utils/index'
const accessPromise = promisify(access)
-import { uploadVideo } from '../tests/utils/index'
-
program
.option('-u, --url <url>', 'Server url')
- .option('-a, --access-token <token>', 'Access token')
- .option('-n, --name <name>', 'Video name')
+ .option('-U, --username <username>', 'Username')
+ .option('-p, --password <token>', 'Password')
+ .option('-n, --video-name <name>', 'Video name')
.option('-N, --nsfw', 'Video is Not Safe For Work')
.option('-c, --category <category number>', 'Category number')
+ .option('-m, --comments-enabled', 'Enable comments')
.option('-l, --licence <licence number>', 'Licence number')
.option('-L, --language <language number>', 'Language number')
- .option('-d, --description <description>', 'Video description')
+ .option('-d, --video-description <description>', 'Video description')
.option('-t, --tags <tags>', 'Video tags', list)
.option('-f, --file <file>', 'Video absolute file path')
.parse(process.argv)
if (!program['tags']) program['tags'] = []
if (!program['nsfw']) program['nsfw'] = false
+if (!program['commentsEnabled']) program['commentsEnabled'] = false
if (
!program['url'] ||
- !program['accessToken'] ||
- !program['name'] ||
- !program['category'] ||
- !program['licence'] ||
- !program['description'] ||
+ !program['username'] ||
+ !program['password'] ||
+ !program['videoName'] ||
!program['file']
) {
- throw new Error('All arguments but tags, language and nsfw are required.')
+ console.error('Url, username, password, name and input file are required.')
+ process.exit(-1)
}
if (isAbsolute(program['file']) === false) {
- throw new Error('File path should be absolute.')
+ console.error('File path should be absolute.')
+ process.exit(-1)
}
-accessPromise(program['file'], constants.F_OK)
- .then(() => {
- return upload(
- program['url'],
- program['accessToken'],
- program['name'],
- program['category'],
- program['licence'],
- program['language'],
- program['nsfw'],
- program['description'],
- program['tags'],
- program['file']
- )
- })
- .then(() => process.exit(0))
- .catch(err => {
- console.error(err)
- process.exit(-1)
- })
+run().catch(err => console.error(err))
-// ----------------------------------------------------------------------------
+async function run () {
+ const res = await getClient(program[ 'url' ])
+ const client = {
+ id: res.body.client_id,
+ secret: res.body.client_secret
+ }
-function list (val) {
- return val.split(',')
-}
+ const user = {
+ username: program[ 'username' ],
+ password: program[ 'password' ]
+ }
+
+ const res2 = await login(program[ 'url' ], client, user)
+ const accessToken = res2.body.access_token
-function upload (url, accessToken, name, category, licence, language, nsfw, description, tags, fixture) {
- console.log('Uploading %s video...', program['name'])
+ await accessPromise(program[ 'file' ], constants.F_OK)
+
+ console.log('Uploading %s video...', program[ 'videoName' ])
const videoAttributes = {
- name,
- category,
- licence,
- language,
- nsfw,
- description,
- tags,
- fixture
+ name: program['videoName'],
+ category: program['category'],
+ licence: program['licence'],
+ language: program['language'],
+ nsfw: program['nsfw'],
+ description: program['videoDescription'],
+ tags: program['tags'],
+ commentsEnabled: program['commentsEnabled'],
+ fixture: program['file']
}
- return uploadVideo(url, accessToken, videoAttributes).then(() => {
- console.log(`Video ${name} uploaded.`)
- })
+
+ await uploadVideo(program['url'], accessToken, videoAttributes)
+
+ console.log(`Video ${program['videoName']} uploaded.`)
+ process.exit(0)
+}
+
+// ----------------------------------------------------------------------------
+
+function list (val) {
+ return val.split(',')
}