mirror of https://github.com/Chocobozzz/PeerTube
Add populate database script
parent
3b492bff49
commit
b54431049b
|
@ -3,7 +3,7 @@
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
for i in $(seq 1 6); do
|
for i in $(seq 1 6); do
|
||||||
dropdb "peertube_test$i"
|
dropdb --if-exists "peertube_test$i"
|
||||||
rm -rf "./test$i"
|
rm -rf "./test$i"
|
||||||
rm -f "./config/local-test.json"
|
rm -f "./config/local-test.json"
|
||||||
rm -f "./config/local-test-$i.json"
|
rm -f "./config/local-test-$i.json"
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
import { VideoRateType } from '../../../shared'
|
||||||
|
import {
|
||||||
|
addVideoChannel,
|
||||||
|
createUser,
|
||||||
|
flushTests,
|
||||||
|
getVideosList,
|
||||||
|
killallServers,
|
||||||
|
rateVideo,
|
||||||
|
runServer,
|
||||||
|
ServerInfo,
|
||||||
|
setAccessTokensToServers,
|
||||||
|
uploadVideo
|
||||||
|
} from '../utils'
|
||||||
|
import * as Bluebird from 'bluebird'
|
||||||
|
|
||||||
|
start()
|
||||||
|
.catch(err => console.error(err))
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
async function start () {
|
||||||
|
process.on('exit', async () => {
|
||||||
|
killallServers([ server ])
|
||||||
|
return
|
||||||
|
})
|
||||||
|
process.on('SIGINT', goodbye)
|
||||||
|
process.on('SIGTERM', goodbye)
|
||||||
|
|
||||||
|
await flushTests()
|
||||||
|
|
||||||
|
console.log('Flushed tests.')
|
||||||
|
|
||||||
|
const server = await runServer(6)
|
||||||
|
await setAccessTokensToServers([ server ])
|
||||||
|
|
||||||
|
console.log('Servers ran.')
|
||||||
|
|
||||||
|
// Forever
|
||||||
|
const fakeTab = Array.from(Array(1000000).keys())
|
||||||
|
await Bluebird.map(fakeTab, () => {
|
||||||
|
return Promise.all([
|
||||||
|
uploadCustom(server),
|
||||||
|
likeCustom(server),
|
||||||
|
dislikeCustom(server),
|
||||||
|
createUserCustom(server),
|
||||||
|
createCustomChannel(server)
|
||||||
|
]).catch(err => console.error(err))
|
||||||
|
}, { concurrency: 5 })
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRandomInt (min, max) {
|
||||||
|
return Math.floor(Math.random() * (max - min)) + min
|
||||||
|
}
|
||||||
|
|
||||||
|
function createCustomChannel (server: ServerInfo) {
|
||||||
|
const videoChannel = {
|
||||||
|
displayName: Date.now().toString(),
|
||||||
|
description: Date.now().toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
return addVideoChannel(server.url, server.accessToken, videoChannel)
|
||||||
|
}
|
||||||
|
|
||||||
|
function createUserCustom (server: ServerInfo) {
|
||||||
|
const username = Date.now().toString() + getRandomInt(0, 100000)
|
||||||
|
console.log('Creating user %s.', username)
|
||||||
|
|
||||||
|
return createUser(server.url, server.accessToken, username, 'coucou')
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadCustom (server: ServerInfo) {
|
||||||
|
console.log('Uploading video.')
|
||||||
|
|
||||||
|
const videoAttributes = {
|
||||||
|
name: Date.now() + ' name',
|
||||||
|
category: 4,
|
||||||
|
nsfw: false,
|
||||||
|
licence: 2,
|
||||||
|
language: 'en',
|
||||||
|
description: Date.now() + ' description',
|
||||||
|
tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ],
|
||||||
|
fixture: 'video_short.mp4'
|
||||||
|
}
|
||||||
|
|
||||||
|
return uploadVideo(server.url, server.accessToken, videoAttributes)
|
||||||
|
}
|
||||||
|
|
||||||
|
function likeCustom (server: ServerInfo) {
|
||||||
|
return rateCustom(server, 'like')
|
||||||
|
}
|
||||||
|
|
||||||
|
function dislikeCustom (server: ServerInfo) {
|
||||||
|
return rateCustom(server, 'dislike')
|
||||||
|
}
|
||||||
|
|
||||||
|
async function rateCustom (server: ServerInfo, rating: VideoRateType) {
|
||||||
|
const res = await getVideosList(server.url)
|
||||||
|
|
||||||
|
const videos = res.body.data
|
||||||
|
if (videos.length === 0) return undefined
|
||||||
|
|
||||||
|
const videoToRate = videos[getRandomInt(0, videos.length)]
|
||||||
|
|
||||||
|
console.log('Rating (%s) video.', rating)
|
||||||
|
return rateVideo(server.url, server.accessToken, videoToRate.id, rating)
|
||||||
|
}
|
||||||
|
|
||||||
|
function goodbye () {
|
||||||
|
return process.exit(-1)
|
||||||
|
}
|
Loading…
Reference in New Issue