]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/extra-utils/videos/videos.ts
Translated using Weblate (Arabic)
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / videos / videos.ts
index 39a06b0d7b304a8f125b0c29a7569c39cd632963..2f7f2182c34ded66a0f28722d1c22f437636792a 100644 (file)
@@ -5,21 +5,23 @@ import { pathExists, readdir, readFile } from 'fs-extra'
 import * as parseTorrent from 'parse-torrent'
 import { extname, join } from 'path'
 import * as request from 'supertest'
+import { v4 as uuidv4 } from 'uuid'
+import validator from 'validator'
+import { loadLanguages, VIDEO_CATEGORIES, VIDEO_LANGUAGES, VIDEO_LICENCES, VIDEO_PRIVACIES } from '../../../server/initializers/constants'
+import { VideoDetails, VideoPrivacy } from '../../models/videos'
 import {
   buildAbsoluteFixturePath,
-  getMyUserInformation,
+  buildServerDirectory,
+  dateIsValid,
   immutableAssign,
-  makeGetRequest,
-  makePutBodyRequest,
-  makeUploadRequest,
   root,
-  ServerInfo,
-  testImage
-} from '../'
-import validator from 'validator'
-import { VideoDetails, VideoPrivacy } from '../../models/videos'
-import { VIDEO_CATEGORIES, VIDEO_LANGUAGES, loadLanguages, VIDEO_LICENCES, VIDEO_PRIVACIES } from '../../../server/initializers/constants'
-import { dateIsValid, webtorrentAdd, buildServerDirectory } from '../miscs/miscs'
+  testImage,
+  webtorrentAdd
+} from '../miscs/miscs'
+import { makeGetRequest, makePutBodyRequest, makeUploadRequest } from '../requests/requests'
+import { waitJobs } from '../server/jobs'
+import { ServerInfo } from '../server/servers'
+import { getMyUserInformation } from '../users/users'
 
 loadLanguages()
 
@@ -95,6 +97,20 @@ function getVideo (url: string, id: number | string, expectedStatus = 200) {
           .expect(expectedStatus)
 }
 
+async function getVideoIdFromUUID (url: string, uuid: string) {
+  const res = await getVideo(url, uuid)
+
+  return res.body.id
+}
+
+function getVideoFileMetadataUrl (url: string) {
+  return request(url)
+    .get('/')
+    .set('Accept', 'application/json')
+    .expect(200)
+    .expect('Content-Type', /json/)
+}
+
 function viewVideo (url: string, id: number | string, expectedStatus = 204, xForwardedFor?: string) {
   const path = '/api/v1/videos/' + id + '/views'
 
@@ -630,11 +646,34 @@ async function getLocalIdByUUID (url: string, uuid: string) {
   return res.body.id
 }
 
+// serverNumber starts from 1
+async function uploadRandomVideoOnServers (servers: ServerInfo[], serverNumber: number, additionalParams: any = {}) {
+  const server = servers.find(s => s.serverNumber === serverNumber)
+  const res = await uploadRandomVideo(server, false, additionalParams)
+
+  await waitJobs(servers)
+
+  return res
+}
+
+async function uploadRandomVideo (server: ServerInfo, wait = true, additionalParams: any = {}) {
+  const prefixName = additionalParams.prefixName || ''
+  const name = prefixName + uuidv4()
+
+  const data = Object.assign({ name }, additionalParams)
+  const res = await uploadVideo(server.url, server.accessToken, data)
+
+  if (wait) await waitJobs([ server ])
+
+  return { uuid: res.body.video.uuid, name }
+}
+
 // ---------------------------------------------------------------------------
 
 export {
   getVideoDescription,
   getVideoCategories,
+  uploadRandomVideo,
   getVideoLicences,
   videoUUIDToId,
   getVideoPrivacies,
@@ -643,6 +682,7 @@ export {
   getAccountVideos,
   getVideoChannelVideos,
   getVideo,
+  getVideoFileMetadataUrl,
   getVideoWithToken,
   getVideosList,
   getVideosListPagination,
@@ -651,6 +691,7 @@ export {
   getVideosListWithToken,
   uploadVideo,
   getVideosWithFilters,
+  uploadRandomVideoOnServers,
   updateVideo,
   rateVideo,
   viewVideo,
@@ -660,5 +701,6 @@ export {
   checkVideoFilesWereRemoved,
   getPlaylistVideos,
   uploadVideoAndGetId,
-  getLocalIdByUUID
+  getLocalIdByUUID,
+  getVideoIdFromUUID
 }