28 lines
804 B
TypeScript
28 lines
804 B
TypeScript
|
import { expect } from 'chai'
|
||
|
import { sha1 } from '@server/helpers/core-utils'
|
||
|
import { makeGetRequest } from '../requests'
|
||
|
|
||
|
async function hlsInfohashExist (serverUrl: string, masterPlaylistUrl: string, fileNumber: number) {
|
||
|
const path = '/tracker/announce'
|
||
|
|
||
|
const infohash = sha1(`2${masterPlaylistUrl}+V${fileNumber}`)
|
||
|
|
||
|
// From bittorrent-tracker
|
||
|
const infohashBinary = escape(Buffer.from(infohash, 'hex').toString('binary')).replace(/[@*/+]/g, function (char) {
|
||
|
return '%' + char.charCodeAt(0).toString(16).toUpperCase()
|
||
|
})
|
||
|
|
||
|
const res = await makeGetRequest({
|
||
|
url: serverUrl,
|
||
|
path,
|
||
|
rawQuery: `peer_id=-WW0105-NkvYO/egUAr4&info_hash=${infohashBinary}&port=42100`,
|
||
|
expectedStatus: 200
|
||
|
})
|
||
|
|
||
|
expect(res.text).to.not.contain('failure')
|
||
|
}
|
||
|
|
||
|
export {
|
||
|
hlsInfohashExist
|
||
|
}
|