From 047b33e8d0e87b7c0a274b7aafe4af6e6e100848 Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Thu, 18 Mar 2021 20:57:41 +0100 Subject: [PATCH] [scraper] add retry when getting default trackers --- scraper/lib/torrent.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scraper/lib/torrent.js b/scraper/lib/torrent.js index 981cb3c..82974be 100644 --- a/scraper/lib/torrent.js +++ b/scraper/lib/torrent.js @@ -5,6 +5,7 @@ const BTClient = require('bittorrent-tracker') const async = require('async'); const decode = require('magnet-uri'); const { Type } = require('./types'); +const { delay } = require('./promises') const { isVideo, isSubtitle } = require('./extension'); const { cacheTrackers } = require('./cache'); @@ -190,10 +191,11 @@ async function getTorrentTrackers(torrent) { return Array.from(new Set([].concat(magnetTrackers).concat(torrentTrackers).concat(defaultTrackers))); } -async function getDefaultTrackers(torrent) { +async function getDefaultTrackers(torrent, retry = 3) { return cacheTrackers(() => needle('get', TRACKERS_URL, { open_timeout: SEEDS_CHECK_TIMEOUT }) .then(response => response.body && response.body.trim()) .then(body => body && body.split('\n\n') || [])) + .catch(() => retry > 0 ? delay(5000).then(() => getDefaultTrackers(torrent, retry - 1)) : []) .then(trackers => trackers.concat(ADDITIONAL_TRACKERS)) .then(trackers => torrent.type === Type.ANIME ? trackers.concat(ANIME_TRACKERS) : trackers); }