X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftools%2Fpeertube-import-videos.ts;h=661a4cf35c1d1f6f78d9cd2acbbb34de8a73d859;hb=d74bb0647c79748860ad39c4b7b1be59504b47b7;hp=54ac910e634c5d61218ef922537fb4cffe0af8d9;hpb=62549e6c9818f422698f030e0b242609115493ed;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tools/peertube-import-videos.ts b/server/tools/peertube-import-videos.ts index 54ac910e6..661a4cf35 100644 --- a/server/tools/peertube-import-videos.ts +++ b/server/tools/peertube-import-videos.ts @@ -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: {