add % counter

This commit is contained in:
biglyderv 2025-02-01 05:03:24 -05:00
parent 449c5d2523
commit 0d1c0a7a43

23
site.js
View file

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