allow peertube-import-videos.ts CLI script to run concurrently (#1334)

allows running multiple imports at the same time, whereas previously a concurrent instance of the script deleted another processe's file.
This commit is contained in:
BRAINS YUM 2018-10-24 13:07:51 -05:00 committed by Rigel Kent
parent 8684f3c1f6
commit fa27f07637
1 changed files with 4 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import { getClient, getVideoCategories, login, searchVideoWithSort, uploadVideo
import { truncate } from 'lodash' import { truncate } from 'lodash'
import * as prompt from 'prompt' import * as prompt from 'prompt'
import { remove } from 'fs-extra' import { remove } from 'fs-extra'
import { sha256 } from '../helpers/core-utils'
import { safeGetYoutubeDL } from '../helpers/youtube-dl' import { safeGetYoutubeDL } from '../helpers/youtube-dl'
import { getSettings, netrc } from './cli' import { getSettings, netrc } from './cli'
@ -133,8 +134,7 @@ async function run (user, url: string) {
await processVideo(info, program['language'], processOptions.cwd, url, user) await processVideo(info, program['language'], processOptions.cwd, url, user)
} }
// https://www.youtube.com/watch?v=2Upx39TBc1s console.log('Video/s for user %s imported: %s', program['username'], program['targetUrl'])
console.log('I\'m finished!')
process.exit(0) process.exit(0)
}) })
} }
@ -155,7 +155,7 @@ function processVideo (info: any, languageCode: string, cwd: string, url: string
return res() return res()
} }
const path = join(cwd, new Date().getTime() + '.mp4') const path = join(cwd, sha256(videoInfo.url) + '.mp4')
console.log('Downloading video "%s"...', videoInfo.title) console.log('Downloading video "%s"...', videoInfo.title)
@ -192,7 +192,7 @@ async function uploadVideoOnPeerTube (videoInfo: any, videoPath: string, cwd: st
let thumbnailfile let thumbnailfile
if (videoInfo.thumbnail) { if (videoInfo.thumbnail) {
thumbnailfile = join(cwd, 'thumbnail.jpg') thumbnailfile = join(cwd, sha256(videoInfo.thumbnail) + '.jpg')
await doRequestAndSaveToFile({ await doRequestAndSaveToFile({
method: 'GET', method: 'GET',