mirror of
https://github.com/hydralauncher/hydra.git
synced 2025-03-09 15:40:26 +00:00
refactor: Improve error handling and retry logic in getSeedersAndPeers function
This commit is contained in:
parent
04a5dbb71d
commit
7a2b693397
1 changed files with 19 additions and 9 deletions
|
@ -6,17 +6,27 @@ type WebTorrentHealthData = {
|
|||
};
|
||||
|
||||
export const webTorrentData = {
|
||||
async getSeedersAndPeers(magnet: string) {
|
||||
async getSeedersAndPeers(magnet: string, retry = 0, timeout = 1500) {
|
||||
return new Promise((resolve, reject) => {
|
||||
WebTorrentHealth(magnet, (err: Error, data: WebTorrentHealthData) => {
|
||||
WebTorrentHealth(
|
||||
magnet,
|
||||
{ timeout },
|
||||
(err: Error, data: WebTorrentHealthData) => {
|
||||
if (err) {
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
const { peers, seeds } = data;
|
||||
|
||||
if ((!peers || !seeds) && retry < 3) {
|
||||
return resolve(
|
||||
webTorrentData.getSeedersAndPeers(magnet, retry + 1, timeout * 2)
|
||||
);
|
||||
}
|
||||
|
||||
return resolve({ peers, seeders: seeds });
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
},
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue