diff --git a/site.js b/site.js index 01b8917..3b1011e 100644 --- a/site.js +++ b/site.js @@ -71,17 +71,23 @@ async function rounder(users, data, mode) { let p = []; let congested = []; let timeout = false; - setTimeout(function() { + + let pr = new Promise(resolve => setTimeout(function (...ag) { timeout = true; - },(process.env.delay*1000) || (60*1000)); + resolve(ag); + }, (process.env.delay * 1000) || (60 * 1000))) for (let u of users) { if (timeout) break; let it = 0; while (p.length >= (process.env.maxRate || 15)) { p = p.filter(x => x != 'hi'); + if (timeout) { + console.warn(`Somehow, this is stuck.`); + break; + } if (p.length == 0) break; - let pv = await Promise.any(p); + let pv = await Promise.any([...p,pr]); it++; if (it > 10) { console.warn(`Promises got congested. Moving to another array...`) @@ -118,7 +124,7 @@ async function rounder(users, data, mode) { let endn = []; for (let h in data) { let dh = data[h]; - endn = endn.concat(dh.following,dh.followers); + endn = endn.concat(dh.following, dh.followers); endn = [...new Set(endn)]; } @@ -205,14 +211,14 @@ async function siteCollector(user, path, site, useLimit, data2) { let users = []; let data = {}; - users = await rounder(penv,data,false); + users = await rounder(penv, data, false); users = [...new Set(users)]; let d = process.env.depth || 1; for (let i = 1; i < d; i++) { let tempSet = [...users]; - users = await rounder(tempSet,data,true); + users = await rounder(tempSet, data, true); users = [...new Set(users)]; }