]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tools/import-videos.ts
Refractor comment creation from federation
[github/Chocobozzz/PeerTube.git] / server / tools / import-videos.ts
index f773208abf128673504829840d9a6b67d273f359..e49fbb2f5ef3e0f2253703e0b94fb9581ecc3572 100644 (file)
@@ -10,6 +10,7 @@ import { doRequestAndSaveToFile } from '../helpers/requests'
 import { CONSTRAINTS_FIELDS } from '../initializers'
 import { getClient, getVideoCategories, login, searchVideo, uploadVideo } from '../tests/utils'
 import { truncate } from 'lodash'
+import * as prompt from 'prompt'
 
 program
   .option('-u, --url <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,
@@ -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,