]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Support short uuid for scripts
authorChocobozzz <me@florianbigard.com>
Tue, 17 Aug 2021 09:06:10 +0000 (11:06 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 17 Aug 2021 09:06:10 +0000 (11:06 +0200)
scripts/create-import-video-file-job.ts
scripts/create-transcoding-job.ts
server/tests/cli/create-import-video-file-job.ts
server/tests/cli/create-transcoding-job.ts

index a3a35bc107504786e08955dd09a3b6fa53fffdca..726f51ccf62cf69d8bad5413139ebc459a61b252 100644 (file)
@@ -6,7 +6,7 @@ import { resolve } from 'path'
 import { VideoModel } from '../server/models/video/video'
 import { initDatabaseModels } from '../server/initializers/database'
 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
   .option('-v, --video [videoUUID]', 'Video UUID')
@@ -31,12 +31,14 @@ run()
 async function run () {
   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)
     return
   }
 
-  const video = await VideoModel.load(options.video)
+  const video = await VideoModel.load(uuid)
   if (!video) throw new Error('Video not found.')
   if (video.isOwned() === false) throw new Error('Cannot import files of a non owned video.')
 
index 0bb9bfeab8d25d9858c4ec4cf361c05336d96c52..30846cd15d5ba45561e8bf63de92e10ae4afe005 100755 (executable)
@@ -8,7 +8,7 @@ import { JobQueue } from '../server/lib/job-queue'
 import { computeResolutionsToTranscode } from '@server/helpers/ffprobe-utils'
 import { VideoState, VideoTranscodingPayload } from '@shared/models'
 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'
 
 program
@@ -39,12 +39,14 @@ run()
 async function run () {
   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)
     return
   }
 
-  const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(options.video)
+  const video = await VideoModel.loadAndPopulateAccountAndServerAndTags(uuid)
   if (!video) throw new Error('Video not found.')
 
   const dataInput: VideoTranscodingPayload[] = []
index 9f1b57a2e04406f29f25dae12eb09c772b13e3ab..01817216e8b294adb8e117ae9aab49ee626cb8b2 100644 (file)
@@ -37,7 +37,7 @@ async function checkFiles (video: VideoDetails, objectStorage: boolean) {
 }
 
 function runTests (objectStorage: boolean) {
-  let video1UUID: string
+  let video1ShortId: string
   let video2UUID: string
 
   let servers: PeerTubeServer[] = []
@@ -59,8 +59,8 @@ function runTests (objectStorage: boolean) {
 
     // Upload two videos for our needs
     {
-      const { uuid } = await servers[0].videos.upload({ attributes: { name: 'video1' } })
-      video1UUID = uuid
+      const { shortUUID } = await servers[0].videos.upload({ attributes: { name: 'video1' } })
+      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 () {
-    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 waitJobs(servers)
@@ -81,8 +81,8 @@ function runTests (objectStorage: boolean) {
       const { data: videos } = await server.videos.list()
       expect(videos).to.have.lengthOf(2)
 
-      const video = videos.find(({ uuid }) => uuid === video1UUID)
-      const videoDetails = await server.videos.get({ id: video.uuid })
+      const video = videos.find(({ shortUUID }) => shortUUID === video1ShortId)
+      const videoDetails = await server.videos.get({ id: video.shortUUID })
 
       expect(videoDetails.files).to.have.lengthOf(2)
       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 () {
-    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 waitJobs(servers)
@@ -127,7 +127,7 @@ function runTests (objectStorage: boolean) {
       const { data: videos } = await server.videos.list()
       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 })
 
       expect(videoDetails.files).to.have.lengthOf(2)
index 3313a492fdf61ec12d5e9cb26f5230253716653b..3fd6240915181a691781e432013dcb9c559a48ec 100644 (file)
@@ -52,8 +52,13 @@ function runTests (objectStorage: boolean) {
     if (objectStorage) await ObjectStorageCommand.prepareDefaultBuckets()
 
     for (let i = 1; i <= 5; i++) {
-      const { uuid } = await servers[0].videos.upload({ attributes: { name: 'video' + i } })
-      videosUUID.push(uuid)
+      const { uuid, shortUUID } = await servers[0].videos.upload({ attributes: { name: 'video' + i } })
+
+      if (i > 2) {
+        videosUUID.push(uuid)
+      } else {
+        videosUUID.push(shortUUID)
+      }
     }
 
     await waitJobs(servers)
@@ -88,7 +93,7 @@ function runTests (objectStorage: boolean) {
       for (const video of data) {
         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.streamingPlaylists).to.have.lengthOf(0)