From 0d1c0a7a432d28105fdd01e57686cd991a74bda9 Mon Sep 17 00:00:00 2001 From: biglyderv Date: Sat, 1 Feb 2025 05:03:24 -0500 Subject: [PATCH] add % counter --- site.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/site.js b/site.js index dd08a74..2a07762 100644 --- a/site.js +++ b/site.js @@ -11,6 +11,8 @@ let userLimit = process.env.userLimit || Infinity; let blacklist = (process.env.blacklist + '').split(',') || []; let greylist = (process.env.greylist + '').split(',') || []; let hh; +let percent = 0; +let d = process.env.depth || 1; async function urlCollector(url, path, file, useLimit, data2) { if (path != 'following') return []; @@ -31,7 +33,6 @@ async function urlCollector(url, path, file, useLimit, data2) { let ll = urls.length; links.each(function (i, link) { if (useLimit && urls.length >= pageLimit * 40 + ll) return; - let h = body(link).attr('href'); if (!h) return; h = h.trim(); @@ -80,6 +81,7 @@ async function rounder(users, data, mode) { for (let u of users) { let it = 0; + while (p.length >= (process.env.maxRate || 15)) { p = p.filter(x => x != 'hi'); if (p.length == 0) break; @@ -101,7 +103,8 @@ async function rounder(users, data, mode) { p.push(async function (k) { await siteCollector(u, 'followers', site, mode, data); - console.log(`User ${u} followers is fully calculated`); + percent += 50 / d / users.length; + console.log(`User ${u} followers is fully calculated (${percent}% total)`); p[k] = 'hi'; }(p.length)); @@ -109,7 +112,8 @@ async function rounder(users, data, mode) { p.push(async function (k) { await siteCollector(u, 'following', site, mode, data); - console.log(`User ${u} following is fully calculated`); + percent += 50 / d / users.length; + console.log(`User ${u} following is fully calculated (${percent}% total)`); p[k] = 'hi'; }(p.length)); @@ -127,17 +131,17 @@ async function rounder(users, data, mode) { for (let h in data) { let dh = data[h]; if (dh.following.length == 0 && dh.followers.length == 0) continue; - let ffing = [...dh.following]; + let ffing = [...dh.following]; let ffers = [...dh.followers]; if (mode) { - ffing.length = Math.min(ffing.length,userLimit); - ffers.length = Math.min(ffers.length,userLimit); + ffing.length = Math.min(ffing.length, userLimit); + ffers.length = Math.min(ffers.length, userLimit); } - endn = endn.concat(ffing,ffers); + endn = endn.concat(ffing, ffers); endn = [...new Set(endn)]; if (mode && endn.length - oldLength > userLimit) break; } - let fcg = ((a,b) => ((data[a] ? -data[a].followers.length : 0) - (data[b] ? -data[b].followers.length : 0))); + let fcg = ((a, b) => ((data[a] ? -data[a].followers.length : 0) - (data[b] ? -data[b].followers.length : 0))); endn = endn.sort(fcg); return endn; @@ -216,7 +220,7 @@ async function siteCollector(user, path, site, useLimit, data2) { } out = out.concat(...users); if (useLimit) { - out.length = Math.min(out.length,pageLimit * 40); + out.length = Math.min(out.length, pageLimit * 40); } if (!data2[user]) data2[user] = { following: [], followers: [] }; @@ -235,7 +239,6 @@ async function siteCollector(user, path, site, useLimit, data2) { 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);