aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/utils
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-01-29 08:37:25 +0100
committerChocobozzz <chocobozzz@cpy.re>2019-02-11 09:13:02 +0100
commit092092969633bbcf6d4891a083ea497a7d5c3154 (patch)
tree69e82fe4f60c444cca216830e96afe143a9dac71 /shared/utils
parent4348a27d252a3349bafa7ef4859c0e2cf060c255 (diff)
downloadPeerTube-092092969633bbcf6d4891a083ea497a7d5c3154.tar.gz
PeerTube-092092969633bbcf6d4891a083ea497a7d5c3154.tar.zst
PeerTube-092092969633bbcf6d4891a083ea497a7d5c3154.zip
Add hls support on server
Diffstat (limited to 'shared/utils')
-rw-r--r--shared/utils/index.ts2
-rw-r--r--shared/utils/requests/requests.ts13
-rw-r--r--shared/utils/server/config.ts3
-rw-r--r--shared/utils/server/servers.ts7
-rw-r--r--shared/utils/videos/video-playlists.ts21
-rw-r--r--shared/utils/videos/videos.ts13
6 files changed, 53 insertions, 6 deletions
diff --git a/shared/utils/index.ts b/shared/utils/index.ts
index e08bbfd2a..156901372 100644
--- a/shared/utils/index.ts
+++ b/shared/utils/index.ts
@@ -17,6 +17,8 @@ export * from './users/users'
17export * from './videos/video-abuses' 17export * from './videos/video-abuses'
18export * from './videos/video-blacklist' 18export * from './videos/video-blacklist'
19export * from './videos/video-channels' 19export * from './videos/video-channels'
20export * from './videos/video-comments'
21export * from './videos/video-playlists'
20export * from './videos/videos' 22export * from './videos/videos'
21export * from './videos/video-change-ownership' 23export * from './videos/video-change-ownership'
22export * from './feeds/feeds' 24export * from './feeds/feeds'
diff --git a/shared/utils/requests/requests.ts b/shared/utils/requests/requests.ts
index 77e9f6164..fc687c701 100644
--- a/shared/utils/requests/requests.ts
+++ b/shared/utils/requests/requests.ts
@@ -1,10 +1,17 @@
1import * as request from 'supertest' 1import * as request from 'supertest'
2import { buildAbsoluteFixturePath, root } from '../miscs/miscs' 2import { buildAbsoluteFixturePath, root } from '../miscs/miscs'
3import { isAbsolute, join } from 'path' 3import { isAbsolute, join } from 'path'
4import { parse } from 'url'
5
6function makeRawRequest (url: string, statusCodeExpected?: number) {
7 const { host, protocol, pathname } = parse(url)
8
9 return makeGetRequest({ url: `${protocol}//${host}`, path: pathname, statusCodeExpected })
10}
4 11
5function makeGetRequest (options: { 12function makeGetRequest (options: {
6 url: string, 13 url: string,
7 path: string, 14 path?: string,
8 query?: any, 15 query?: any,
9 token?: string, 16 token?: string,
10 statusCodeExpected?: number, 17 statusCodeExpected?: number,
@@ -13,8 +20,7 @@ function makeGetRequest (options: {
13 if (!options.statusCodeExpected) options.statusCodeExpected = 400 20 if (!options.statusCodeExpected) options.statusCodeExpected = 400
14 if (options.contentType === undefined) options.contentType = 'application/json' 21 if (options.contentType === undefined) options.contentType = 'application/json'
15 22
16 const req = request(options.url) 23 const req = request(options.url).get(options.path)
17 .get(options.path)
18 24
19 if (options.contentType) req.set('Accept', options.contentType) 25 if (options.contentType) req.set('Accept', options.contentType)
20 if (options.token) req.set('Authorization', 'Bearer ' + options.token) 26 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
@@ -164,5 +170,6 @@ export {
164 makePostBodyRequest, 170 makePostBodyRequest,
165 makePutBodyRequest, 171 makePutBodyRequest,
166 makeDeleteRequest, 172 makeDeleteRequest,
173 makeRawRequest,
167 updateAvatarRequest 174 updateAvatarRequest
168} 175}
diff --git a/shared/utils/server/config.ts b/shared/utils/server/config.ts
index 0c5512bab..29c24cff9 100644
--- a/shared/utils/server/config.ts
+++ b/shared/utils/server/config.ts
@@ -97,6 +97,9 @@ function updateCustomSubConfig (url: string, token: string, newConfig: any) {
97 '480p': true, 97 '480p': true,
98 '720p': false, 98 '720p': false,
99 '1080p': false 99 '1080p': false
100 },
101 hls: {
102 enabled: false
100 } 103 }
101 }, 104 },
102 import: { 105 import: {
diff --git a/shared/utils/server/servers.ts b/shared/utils/server/servers.ts
index cb57e0a69..bde7dd5c2 100644
--- a/shared/utils/server/servers.ts
+++ b/shared/utils/server/servers.ts
@@ -166,9 +166,13 @@ async function reRunServer (server: ServerInfo, configOverride?: any) {
166} 166}
167 167
168async function checkTmpIsEmpty (server: ServerInfo) { 168async function checkTmpIsEmpty (server: ServerInfo) {
169 return checkDirectoryIsEmpty(server, 'tmp')
170}
171
172async function checkDirectoryIsEmpty (server: ServerInfo, directory: string) {
169 const testDirectory = 'test' + server.serverNumber 173 const testDirectory = 'test' + server.serverNumber
170 174
171 const directoryPath = join(root(), testDirectory, 'tmp') 175 const directoryPath = join(root(), testDirectory, directory)
172 176
173 const directoryExists = existsSync(directoryPath) 177 const directoryExists = existsSync(directoryPath)
174 expect(directoryExists).to.be.true 178 expect(directoryExists).to.be.true
@@ -199,6 +203,7 @@ async function waitUntilLog (server: ServerInfo, str: string, count = 1) {
199// --------------------------------------------------------------------------- 203// ---------------------------------------------------------------------------
200 204
201export { 205export {
206 checkDirectoryIsEmpty,
202 checkTmpIsEmpty, 207 checkTmpIsEmpty,
203 ServerInfo, 208 ServerInfo,
204 flushAndRunMultipleServers, 209 flushAndRunMultipleServers,
diff --git a/shared/utils/videos/video-playlists.ts b/shared/utils/videos/video-playlists.ts
new file mode 100644
index 000000000..9a0710ca6
--- /dev/null
+++ b/shared/utils/videos/video-playlists.ts
@@ -0,0 +1,21 @@
1import { makeRawRequest } from '../requests/requests'
2
3function getPlaylist (url: string, statusCodeExpected = 200) {
4 return makeRawRequest(url, statusCodeExpected)
5}
6
7function getSegment (url: string, statusCodeExpected = 200) {
8 return makeRawRequest(url, statusCodeExpected)
9}
10
11function getSegmentSha256 (url: string, statusCodeExpected = 200) {
12 return makeRawRequest(url, statusCodeExpected)
13}
14
15// ---------------------------------------------------------------------------
16
17export {
18 getPlaylist,
19 getSegment,
20 getSegmentSha256
21}
diff --git a/shared/utils/videos/videos.ts b/shared/utils/videos/videos.ts
index 0cf6e7c4f..b5b33e038 100644
--- a/shared/utils/videos/videos.ts
+++ b/shared/utils/videos/videos.ts
@@ -271,7 +271,16 @@ function removeVideo (url: string, token: string, id: number | string, expectedS
271async function checkVideoFilesWereRemoved ( 271async function checkVideoFilesWereRemoved (
272 videoUUID: string, 272 videoUUID: string,
273 serverNumber: number, 273 serverNumber: number,
274 directories = [ 'redundancy', 'videos', 'thumbnails', 'torrents', 'previews', 'captions' ] 274 directories = [
275 'redundancy',
276 'videos',
277 'thumbnails',
278 'torrents',
279 'previews',
280 'captions',
281 join('playlists', 'hls'),
282 join('redundancy', 'hls')
283 ]
275) { 284) {
276 const testDirectory = 'test' + serverNumber 285 const testDirectory = 'test' + serverNumber
277 286
@@ -279,7 +288,7 @@ async function checkVideoFilesWereRemoved (
279 const directoryPath = join(root(), testDirectory, directory) 288 const directoryPath = join(root(), testDirectory, directory)
280 289
281 const directoryExists = existsSync(directoryPath) 290 const directoryExists = existsSync(directoryPath)
282 expect(directoryExists).to.be.true 291 if (!directoryExists) continue
283 292
284 const files = await readdir(directoryPath) 293 const files = await readdir(directoryPath)
285 for (const file of files) { 294 for (const file of files) {