PeerTube/shared/extra-utils/server/tracker.ts

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
}