From c9971550c92b88e33139d723c829bdf9e9e7b488 Mon Sep 17 00:00:00 2001 From: TheBeastLT Date: Mon, 1 Feb 2021 08:55:51 +0100 Subject: [PATCH] [addon] retry getting best trackers during startup --- addon/lib/magnetHelper.js | 24 +++++++++++++++--------- addon/moch/premiumize.js | 4 ++-- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/addon/lib/magnetHelper.js b/addon/lib/magnetHelper.js index d22dfe6..815001d 100644 --- a/addon/lib/magnetHelper.js +++ b/addon/lib/magnetHelper.js @@ -32,17 +32,23 @@ async function getMagnetLink(infoHash) { } async function initBestTrackers() { - const options = { timeout: 30000, headers: { 'User-Agent': getRandomUserAgent() } }; - - BEST_TRACKERS = await needle('get', TRACKERS_URL, options) - .then(response => response.body && response.body.trim()) - .then(body => body && body.split('\n\n') || []) - .catch(error => { - console.log(`Failed retrieving best trackers: ${error.message}`); - return []; - }); + BEST_TRACKERS = await getBestTrackers(); ALL_TRACKERS = BEST_TRACKERS.concat(ANIME_TRACKERS); console.log('Retrieved best trackers: ', BEST_TRACKERS); } +async function getBestTrackers(retry = 2) { + const options = { timeout: 30000, headers: { 'User-Agent': getRandomUserAgent() } }; + return needle('get', TRACKERS_URL, options) + .then(response => response.body && response.body.trim()) + .then(body => body && body.split('\n\n') || []) + .catch(error => { + if (retry === 0) { + console.log(`Failed retrieving best trackers: ${error.message}`); + return []; + } + return getBestTrackers(retry - 1); + }); +} + module.exports = { initBestTrackers, getAllTrackers, getMagnetLink }; \ No newline at end of file diff --git a/addon/moch/premiumize.js b/addon/moch/premiumize.js index ad49a0e..8bcc2e2 100644 --- a/addon/moch/premiumize.js +++ b/addon/moch/premiumize.js @@ -84,7 +84,7 @@ async function getFolderContents(PM, itemId, ip, folderPrefix = '') { } async function resolve({ ip, apiKey, infoHash, cachedEntryInfo, fileIndex }) { - console.log(`Unrestricting ${infoHash} [${fileIndex}] for IP ${ip}`); + console.log(`Unrestricting Premiumize ${infoHash} [${fileIndex}] for IP ${ip}`); const options = await getDefaultOptions(apiKey); const PM = new PremiumizeClient(apiKey, options); @@ -124,7 +124,7 @@ async function _getCachedLink(PM, infoHash, encodedFileName, fileIndex, ip) { ? videos.find(video => video.path.includes(targetFileName)) : videos.sort((a, b) => b.size - a.size)[0]; const unrestrictedLink = targetVideo.stream_link || targetVideo.link; - console.log(`Unrestricted ${infoHash} [${fileIndex}] to ${unrestrictedLink}`); + console.log(`Unrestricted Premiumize ${infoHash} [${fileIndex}] to ${unrestrictedLink}`); return unrestrictedLink; } return Promise.reject('No cached entry found');