1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-05 10:49:28 +02:00

Try to have more robust live tests

This commit is contained in:
Chocobozzz 2023-05-10 09:28:42 +02:00
parent 9d1e41e8bb
commit 5170f492b9
No known key found for this signature in database
GPG key ID: 583A612D890159BE
5 changed files with 67 additions and 25 deletions

View file

@ -44,31 +44,71 @@ export class StreamingPlaylistsCommand extends AbstractCommand {
}
}
getFragmentedSegment (options: OverrideCommandOptions & {
async getFragmentedSegment (options: OverrideCommandOptions & {
url: string
range?: string
}) {
return unwrapBody<Buffer>(this.getRawRequest({
...options,
url: options.url,
range: options.range,
implicitToken: false,
responseType: 'application/octet-stream',
defaultExpectedStatus: HttpStatusCode.OK_200
}))
withRetry?: boolean // default false
currentRetry?: number
}) {
const { withRetry, currentRetry = 1 } = options
try {
const result = await unwrapBody<Buffer>(this.getRawRequest({
...options,
url: options.url,
range: options.range,
implicitToken: false,
responseType: 'application/octet-stream',
defaultExpectedStatus: HttpStatusCode.OK_200
}))
return result
} catch (err) {
if (!withRetry || currentRetry > 5) throw err
await wait(100)
return this.getFragmentedSegment({
...options,
withRetry,
currentRetry: currentRetry + 1
})
}
}
getSegmentSha256 (options: OverrideCommandOptions & {
async getSegmentSha256 (options: OverrideCommandOptions & {
url: string
}) {
return unwrapBodyOrDecodeToJSON<{ [ id: string ]: string }>(this.getRawRequest({
...options,
url: options.url,
contentType: 'application/json',
implicitToken: false,
defaultExpectedStatus: HttpStatusCode.OK_200
}))
withRetry?: boolean // default false
currentRetry?: number
}) {
const { withRetry, currentRetry = 1 } = options
try {
const result = await unwrapBodyOrDecodeToJSON<{ [ id: string ]: string }>(this.getRawRequest({
...options,
url: options.url,
contentType: 'application/json',
implicitToken: false,
defaultExpectedStatus: HttpStatusCode.OK_200
}))
return result
} catch (err) {
if (!withRetry || currentRetry > 5) throw err
await wait(100)
return this.getSegmentSha256({
...options,
withRetry,
currentRetry: currentRetry + 1
})
}
}
}