Support short uuid for scripts
This commit is contained in:
parent
66a7fc9473
commit
c186a67f90
4 changed files with 26 additions and 17 deletions
|
@ -6,7 +6,7 @@ import { resolve } from 'path'
|
||||||
import { VideoModel } from '../server/models/video/video'
|
import { VideoModel } from '../server/models/video/video'
|
||||||
import { initDatabaseModels } from '../server/initializers/database'
|
import { initDatabaseModels } from '../server/initializers/database'
|
||||||
import { JobQueue } from '../server/lib/job-queue'
|
import { JobQueue } from '../server/lib/job-queue'
|
||||||
import { isUUIDValid } from '@server/helpers/custom-validators/misc'
|
import { isUUIDValid, toCompleteUUID } from '@server/helpers/custom-validators/misc'
|
||||||
|
|
||||||
program
|
program
|
||||||
.option('-v, --video [videoUUID]', 'Video UUID')
|
.option('-v, --video [videoUUID]', 'Video UUID')
|
||||||
|
@ -31,12 +31,14 @@ run()
|
||||||
async function run () {
|
async function run () {
|
||||||
await initDatabaseModels(true)
|
await initDatabaseModels(true)
|
||||||
|
|
||||||
if (isUUIDValid(options.video) === false) {
|
const uuid = toCompleteUUID(options.video)
|
||||||
|
|
||||||
|
if (isUUIDValid(uuid) === false) {
|
||||||
console.error('%s is not a valid video UUID.', options.video)
|
console.error('%s is not a valid video UUID.', options.video)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const video = await VideoModel.load(options.video)
|
const video = await VideoModel.load(uuid)
|
||||||
if (!video) throw new Error('Video not found.')
|
if (!video) throw new Error('Video not found.')
|
||||||
if (video.isOwned() === false) throw new Error('Cannot import files of a non owned video.')
|
if (video.isOwned() === false) throw new Error('Cannot import files of a non owned video.')
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import { JobQueue } from '../server/lib/job-queue'
|
||||||
import { computeResolutionsToTranscode } from '@server/helpers/ffprobe-utils'
|
import { computeResolutionsToTranscode } from '@server/helpers/ffprobe-utils'
|
||||||
import { VideoState, VideoTranscodingPayload } from '@shared/models'
|
import { VideoState, VideoTranscodingPayload } from '@shared/models'
|
||||||
import { CONFIG } from '@server/initializers/config'
|
import { CONFIG } from '@server/initializers/config'
|
||||||
import { isUUIDValid } from '@server/helpers/custom-validators/misc'
|
import { isUUIDValid, toCompleteUUID } from '@server/helpers/custom-validators/misc'
|
||||||
import { addTranscodingJob } from '@server/lib/video'
|
import { addTranscodingJob } from '@server/lib/video'
|
||||||
|
|
||||||
program
|
program
|
||||||
|
@ -39,12 +39,14 @@ run()
|
||||||
async function run () {
|
async function run () {
|
||||||
await initDatabaseModels(true)
|
await initDatabaseModels(true)
|
||||||
|
|
||||||
if (isUUIDValid(options.video) === false) {
|
const uuid = toCompleteUUID(options.video)
|
||||||
|
|
||||||
|
if (isUUIDValid(uuid) === false) {
|
||||||
console.error('%s is not a valid video UUID.', options.video)
|
console.error('%s is not a valid video UUID.', options.video)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(options.video)
|
const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(uuid)
|
||||||
if (!video) throw new Error('Video not found.')
|
if (!video) throw new Error('Video not found.')
|
||||||
|
|
||||||
const dataInput: VideoTranscodingPayload[] = []
|
const dataInput: VideoTranscodingPayload[] = []
|
||||||
|
|
|
@ -37,7 +37,7 @@ async function checkFiles (video: VideoDetails, objectStorage: boolean) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests (objectStorage: boolean) {
|
function runTests (objectStorage: boolean) {
|
||||||
let video1UUID: string
|
let video1ShortId: string
|
||||||
let video2UUID: string
|
let video2UUID: string
|
||||||
|
|
||||||
let servers: PeerTubeServer[] = []
|
let servers: PeerTubeServer[] = []
|
||||||
|
@ -59,8 +59,8 @@ function runTests (objectStorage: boolean) {
|
||||||
|
|
||||||
// Upload two videos for our needs
|
// Upload two videos for our needs
|
||||||
{
|
{
|
||||||
const { uuid } = await servers[0].videos.upload({ attributes: { name: 'video1' } })
|
const { shortUUID } = await servers[0].videos.upload({ attributes: { name: 'video1' } })
|
||||||
video1UUID = uuid
|
video1ShortId = shortUUID
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -72,7 +72,7 @@ function runTests (objectStorage: boolean) {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should run a import job on video 1 with a lower resolution', async function () {
|
it('Should run a import job on video 1 with a lower resolution', async function () {
|
||||||
const command = `npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short-480.webm`
|
const command = `npm run create-import-video-file-job -- -v ${video1ShortId} -i server/tests/fixtures/video_short-480.webm`
|
||||||
await servers[0].cli.execWithEnv(command)
|
await servers[0].cli.execWithEnv(command)
|
||||||
|
|
||||||
await waitJobs(servers)
|
await waitJobs(servers)
|
||||||
|
@ -81,8 +81,8 @@ function runTests (objectStorage: boolean) {
|
||||||
const { data: videos } = await server.videos.list()
|
const { data: videos } = await server.videos.list()
|
||||||
expect(videos).to.have.lengthOf(2)
|
expect(videos).to.have.lengthOf(2)
|
||||||
|
|
||||||
const video = videos.find(({ uuid }) => uuid === video1UUID)
|
const video = videos.find(({ shortUUID }) => shortUUID === video1ShortId)
|
||||||
const videoDetails = await server.videos.get({ id: video.uuid })
|
const videoDetails = await server.videos.get({ id: video.shortUUID })
|
||||||
|
|
||||||
expect(videoDetails.files).to.have.lengthOf(2)
|
expect(videoDetails.files).to.have.lengthOf(2)
|
||||||
const [ originalVideo, transcodedVideo ] = videoDetails.files
|
const [ originalVideo, transcodedVideo ] = videoDetails.files
|
||||||
|
@ -118,7 +118,7 @@ function runTests (objectStorage: boolean) {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('Should run a import job on video 2 with the same resolution and the same extension', async function () {
|
it('Should run a import job on video 2 with the same resolution and the same extension', async function () {
|
||||||
const command = `npm run create-import-video-file-job -- -v ${video1UUID} -i server/tests/fixtures/video_short2.webm`
|
const command = `npm run create-import-video-file-job -- -v ${video1ShortId} -i server/tests/fixtures/video_short2.webm`
|
||||||
await servers[0].cli.execWithEnv(command)
|
await servers[0].cli.execWithEnv(command)
|
||||||
|
|
||||||
await waitJobs(servers)
|
await waitJobs(servers)
|
||||||
|
@ -127,7 +127,7 @@ function runTests (objectStorage: boolean) {
|
||||||
const { data: videos } = await server.videos.list()
|
const { data: videos } = await server.videos.list()
|
||||||
expect(videos).to.have.lengthOf(2)
|
expect(videos).to.have.lengthOf(2)
|
||||||
|
|
||||||
const video = videos.find(({ uuid }) => uuid === video1UUID)
|
const video = videos.find(({ shortUUID }) => shortUUID === video1ShortId)
|
||||||
const videoDetails = await server.videos.get({ id: video.uuid })
|
const videoDetails = await server.videos.get({ id: video.uuid })
|
||||||
|
|
||||||
expect(videoDetails.files).to.have.lengthOf(2)
|
expect(videoDetails.files).to.have.lengthOf(2)
|
||||||
|
|
|
@ -52,8 +52,13 @@ function runTests (objectStorage: boolean) {
|
||||||
if (objectStorage) await ObjectStorageCommand.prepareDefaultBuckets()
|
if (objectStorage) await ObjectStorageCommand.prepareDefaultBuckets()
|
||||||
|
|
||||||
for (let i = 1; i <= 5; i++) {
|
for (let i = 1; i <= 5; i++) {
|
||||||
const { uuid } = await servers[0].videos.upload({ attributes: { name: 'video' + i } })
|
const { uuid, shortUUID } = await servers[0].videos.upload({ attributes: { name: 'video' + i } })
|
||||||
videosUUID.push(uuid)
|
|
||||||
|
if (i > 2) {
|
||||||
|
videosUUID.push(uuid)
|
||||||
|
} else {
|
||||||
|
videosUUID.push(shortUUID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await waitJobs(servers)
|
await waitJobs(servers)
|
||||||
|
@ -88,7 +93,7 @@ function runTests (objectStorage: boolean) {
|
||||||
for (const video of data) {
|
for (const video of data) {
|
||||||
const videoDetails = await server.videos.get({ id: video.uuid })
|
const videoDetails = await server.videos.get({ id: video.uuid })
|
||||||
|
|
||||||
if (video.uuid === videosUUID[1]) {
|
if (video.shortUUID === videosUUID[1] || video.uuid === videosUUID[1]) {
|
||||||
expect(videoDetails.files).to.have.lengthOf(4)
|
expect(videoDetails.files).to.have.lengthOf(4)
|
||||||
expect(videoDetails.streamingPlaylists).to.have.lengthOf(0)
|
expect(videoDetails.streamingPlaylists).to.have.lengthOf(0)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue