]>
Commit | Line | Data |
---|---|---|
b5443104 C |
1 | import { VideoRateType } from '../../../shared' |
2 | import { | |
3 | addVideoChannel, | |
4 | createUser, | |
5 | flushTests, | |
6 | getVideosList, | |
7 | killallServers, | |
8 | rateVideo, | |
9 | runServer, | |
10 | ServerInfo, | |
11 | setAccessTokensToServers, | |
12 | uploadVideo | |
13 | } from '../utils' | |
14 | import * as Bluebird from 'bluebird' | |
15 | ||
16 | start() | |
17 | .catch(err => console.error(err)) | |
18 | ||
19 | // ---------------------------------------------------------------------------- | |
20 | ||
21 | async function start () { | |
e032aec9 C |
22 | await flushTests() |
23 | ||
24 | console.log('Flushed tests.') | |
25 | ||
26 | const server = await runServer(6) | |
27 | ||
b5443104 C |
28 | process.on('exit', async () => { |
29 | killallServers([ server ]) | |
30 | return | |
31 | }) | |
32 | process.on('SIGINT', goodbye) | |
33 | process.on('SIGTERM', goodbye) | |
34 | ||
b5443104 C |
35 | await setAccessTokensToServers([ server ]) |
36 | ||
37 | console.log('Servers ran.') | |
38 | ||
39 | // Forever | |
40 | const fakeTab = Array.from(Array(1000000).keys()) | |
41 | await Bluebird.map(fakeTab, () => { | |
42 | return Promise.all([ | |
43 | uploadCustom(server), | |
44 | likeCustom(server), | |
45 | dislikeCustom(server), | |
46 | createUserCustom(server), | |
47 | createCustomChannel(server) | |
48 | ]).catch(err => console.error(err)) | |
49 | }, { concurrency: 5 }) | |
50 | } | |
51 | ||
52 | function getRandomInt (min, max) { | |
53 | return Math.floor(Math.random() * (max - min)) + min | |
54 | } | |
55 | ||
56 | function createCustomChannel (server: ServerInfo) { | |
57 | const videoChannel = { | |
58 | displayName: Date.now().toString(), | |
59 | description: Date.now().toString() | |
60 | } | |
61 | ||
62 | return addVideoChannel(server.url, server.accessToken, videoChannel) | |
63 | } | |
64 | ||
65 | function createUserCustom (server: ServerInfo) { | |
66 | const username = Date.now().toString() + getRandomInt(0, 100000) | |
67 | console.log('Creating user %s.', username) | |
68 | ||
69 | return createUser(server.url, server.accessToken, username, 'coucou') | |
70 | } | |
71 | ||
72 | function uploadCustom (server: ServerInfo) { | |
73 | console.log('Uploading video.') | |
74 | ||
75 | const videoAttributes = { | |
76 | name: Date.now() + ' name', | |
77 | category: 4, | |
78 | nsfw: false, | |
79 | licence: 2, | |
80 | language: 'en', | |
81 | description: Date.now() + ' description', | |
82 | tags: [ Date.now().toString().substring(0, 5) + 't1', Date.now().toString().substring(0, 5) + 't2' ], | |
83 | fixture: 'video_short.mp4' | |
84 | } | |
85 | ||
86 | return uploadVideo(server.url, server.accessToken, videoAttributes) | |
87 | } | |
88 | ||
89 | function likeCustom (server: ServerInfo) { | |
90 | return rateCustom(server, 'like') | |
91 | } | |
92 | ||
93 | function dislikeCustom (server: ServerInfo) { | |
94 | return rateCustom(server, 'dislike') | |
95 | } | |
96 | ||
97 | async function rateCustom (server: ServerInfo, rating: VideoRateType) { | |
98 | const res = await getVideosList(server.url) | |
99 | ||
100 | const videos = res.body.data | |
101 | if (videos.length === 0) return undefined | |
102 | ||
103 | const videoToRate = videos[getRandomInt(0, videos.length)] | |
104 | ||
105 | console.log('Rating (%s) video.', rating) | |
106 | return rateVideo(server.url, server.accessToken, videoToRate.id, rating) | |
107 | } | |
108 | ||
109 | function goodbye () { | |
110 | return process.exit(-1) | |
111 | } |