X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftools%2Fimport-videos.ts;h=3ff194c83110b083ae44ea9f1b290f24b19d9d7b;hb=91411dba928678c15a5e99d9795ae061909e397d;hp=f773208abf128673504829840d9a6b67d273f359;hpb=9d3ef9fe052ed29bd67566754cb28662bd122234;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tools/import-videos.ts b/server/tools/import-videos.ts index f773208ab..3ff194c83 100644 --- a/server/tools/import-videos.ts +++ b/server/tools/import-videos.ts @@ -5,11 +5,12 @@ import * as program from 'commander' import { join } from 'path' import * as youtubeDL from 'youtube-dl' import { VideoPrivacy } from '../../shared/models/videos' -import { unlinkPromise } from '../helpers/core-utils' import { doRequestAndSaveToFile } from '../helpers/requests' import { CONSTRAINTS_FIELDS } from '../initializers' -import { getClient, getVideoCategories, login, searchVideo, uploadVideo } from '../tests/utils' +import { getClient, getVideoCategories, login, searchVideoWithSort, uploadVideo } from '../tests/utils' import { truncate } from 'lodash' +import * as prompt from 'prompt' +import { remove } from 'fs-extra' program .option('-u, --url ', 'Server url') @@ -23,29 +24,52 @@ program if ( !program['url'] || !program['username'] || - !program['password'] || !program['targetUrl'] ) { console.error('All arguments are required.') process.exit(-1) } -run().catch(err => console.error(err)) - -let accessToken: string -let client: { id: string, secret: string } - const user = { username: program['username'], password: program['password'] } +run().catch(err => console.error(err)) + +let accessToken: string +let client: { id: string, secret: string } + const processOptions = { cwd: __dirname, maxBuffer: Infinity } +async function promptPassword () { + return new Promise((res, rej) => { + prompt.start() + const schema = { + properties: { + password: { + hidden: true, + required: true + } + } + } + prompt.get(schema, function (err, result) { + if (err) { + return rej(err) + } + return res(result.password) + }) + }) +} + async function run () { + if (!user.password) { + user.password = await promptPassword() + } + const res = await getClient(program['url']) client = { id: res.body.client_id, @@ -89,7 +113,7 @@ function processVideo (info: any, languageCode: string) { const videoInfo = await fetchObject(info) if (program['verbose']) console.log('Fetched object.', videoInfo) - const result = await searchVideo(program['url'], videoInfo.title) + const result = await searchVideoWithSort(program['url'], videoInfo.title, '-match') console.log('############################################################\n') @@ -152,6 +176,7 @@ async function uploadVideoOnPeerTube (videoInfo: any, videoPath: string, languag licence, language, nsfw: isNSFW(videoInfo), + waitTranscoding: true, commentsEnabled: true, description: videoInfo.description || undefined, support: undefined, @@ -179,10 +204,8 @@ async function uploadVideoOnPeerTube (videoInfo: any, videoPath: string, languag } } - await unlinkPromise(videoPath) - if (thumbnailfile) { - await unlinkPromise(thumbnailfile) - } + await remove(videoPath) + if (thumbnailfile) await remove(thumbnailfile) console.log('Uploaded video "%s"!\n', videoAttributes.name) }