]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tools/peertube-import-videos.ts
Fix videos history tests
[github/Chocobozzz/PeerTube.git] / server / tools / peertube-import-videos.ts
index 54ac910e634c5d61218ef922537fb4cffe0af8d9..661a4cf35c1d1f6f78d9cd2acbbb34de8a73d859 100644 (file)
@@ -1,11 +1,10 @@
-import { registerTSPaths } from '../helpers/register-ts-paths'
-registerTSPaths()
-
 import { program } from 'commander'
 import { accessSync, constants } from 'fs'
 import { remove } from 'fs-extra'
 import { join } from 'path'
-import { sha256 } from '../helpers/core-utils'
+import { YoutubeDLCLI, YoutubeDLInfo, YoutubeDLInfoBuilder } from '@server/helpers/youtube-dl'
+import { wait } from '@shared/core-utils'
+import { sha256 } from '@shared/extra-utils'
 import { doRequestAndSaveToFile } from '../helpers/requests'
 import {
   assignToken,
@@ -15,8 +14,7 @@ import {
   getLogger,
   getServerCredentials
 } from './cli'
-import { wait } from '@shared/extra-utils'
-import { YoutubeDLCLI, YoutubeDLInfo, YoutubeDLInfoBuilder } from '@server/helpers/youtube-dl'
+
 import prompt = require('prompt')
 
 const processOptions = {
@@ -95,14 +93,15 @@ async function run (url: string, username: string, password: string) {
 
   log.info('Will download and upload %d videos.\n', infoArray.length)
 
+  let skipInterval = true
   for (const [ index, info ] of infoArray.entries()) {
     try {
-      if (index > 0 && options.waitInterval) {
+      if (index > 0 && options.waitInterval && !skipInterval) {
         log.info("Wait for %d seconds before continuing.", options.waitInterval / 1000)
         await wait(options.waitInterval)
       }
 
-      await processVideo({
+      skipInterval = await processVideo({
         cwd: options.tmpdir,
         url,
         username,
@@ -134,12 +133,12 @@ async function processVideo (parameters: {
 
   if (options.since && videoInfo.originallyPublishedAt && videoInfo.originallyPublishedAt.getTime() < options.since.getTime()) {
     log.info('Video "%s" has been published before "%s", don\'t upload it.\n', videoInfo.name, formatDate(options.since))
-    return
+    return true
   }
 
   if (options.until && videoInfo.originallyPublishedAt && videoInfo.originallyPublishedAt.getTime() > options.until.getTime()) {
     log.info('Video "%s" has been published after "%s", don\'t upload it.\n', videoInfo.name, formatDate(options.until))
-    return
+    return true
   }
 
   const server = buildServer(url)
@@ -155,7 +154,7 @@ async function processVideo (parameters: {
 
   if (data.find(v => v.name === videoInfo.name)) {
     log.info('Video "%s" already exists, don\'t reupload it.\n', videoInfo.name)
-    return
+    return true
   }
 
   const path = join(cwd, sha256(videoInfo.url) + '.mp4')
@@ -184,6 +183,8 @@ async function processVideo (parameters: {
   } catch (err) {
     log.error(err.message)
   }
+
+  return false
 }
 
 async function uploadVideoOnPeerTube (parameters: {