[addon] retry getting best trackers during startup

This commit is contained in:
TheBeastLT
2021-02-01 08:55:51 +01:00
parent 4b42e80d90
commit c9971550c9
2 changed files with 17 additions and 11 deletions

View File

@@ -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 };

View File

@@ -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');