hydra/src/main/services/web-torrent-data.ts
Zamitto d924c64710
Update web-torrent-data.ts
Small adjustment to webTorrentData logic
2024-05-18 14:55:56 -03:00

41 lines
779 B
TypeScript

import webTorrentHealth from "webtorrent-health";
type WebTorrentHealthData = {
seeds: number;
peers: number;
};
const MILLISECONDS = 1000;
const SECONDS = 1.5;
export const webTorrentData = {
async getSeedersAndPeers(
magnet: string
): Promise<{ seeders: number; peers: number } | null> {
let peers = 0;
let seeds = 0;
let retry = 0;
let timeout = SECONDS * MILLISECONDS;
while (retry < 3) {
try {
const data: WebTorrentHealthData = await webTorrentHealth(magnet, {
timeout,
});
peers = data.peers;
seeds = data.seeds;
if (peers || seeds) break;
} catch (e) {
return null;
}
timeout *= 2;
retry++;
}
return { peers, seeders: seeds };
},
};