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 blacklist = (process.env.blacklist + '').split(',') || [];
let greylist = (process.env.greylist + '').split(',') || []; let greylist = (process.env.greylist + '').split(',') || [];
let hh; let hh;
let percent = 0;
let d = process.env.depth || 1;
async function urlCollector(url, path, file, useLimit, data2) { async function urlCollector(url, path, file, useLimit, data2) {
if (path != 'following') return []; if (path != 'following') return [];
@ -31,7 +33,6 @@ async function urlCollector(url, path, file, useLimit, data2) {
let ll = urls.length; let ll = urls.length;
links.each(function (i, link) { links.each(function (i, link) {
if (useLimit && urls.length >= pageLimit * 40 + ll) return; if (useLimit && urls.length >= pageLimit * 40 + ll) return;
let h = body(link).attr('href'); let h = body(link).attr('href');
if (!h) return; if (!h) return;
h = h.trim(); h = h.trim();
@ -80,6 +81,7 @@ async function rounder(users, data, mode) {
for (let u of users) { for (let u of users) {
let it = 0; let it = 0;
while (p.length >= (process.env.maxRate || 15)) { while (p.length >= (process.env.maxRate || 15)) {
p = p.filter(x => x != 'hi'); p = p.filter(x => x != 'hi');
if (p.length == 0) break; if (p.length == 0) break;
@ -101,7 +103,8 @@ async function rounder(users, data, mode) {
p.push(async function (k) { p.push(async function (k) {
await siteCollector(u, 'followers', site, mode, data); 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[k] = 'hi';
}(p.length)); }(p.length));
@ -109,7 +112,8 @@ async function rounder(users, data, mode) {
p.push(async function (k) { p.push(async function (k) {
await siteCollector(u, 'following', site, mode, data); 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[k] = 'hi';
}(p.length)); }(p.length));
@ -127,17 +131,17 @@ async function rounder(users, data, mode) {
for (let h in data) { for (let h in data) {
let dh = data[h]; let dh = data[h];
if (dh.following.length == 0 && dh.followers.length == 0) continue; if (dh.following.length == 0 && dh.followers.length == 0) continue;
let ffing = [...dh.following]; let ffing = [...dh.following];
let ffers = [...dh.followers]; let ffers = [...dh.followers];
if (mode) { if (mode) {
ffing.length = Math.min(ffing.length,userLimit); ffing.length = Math.min(ffing.length, userLimit);
ffers.length = Math.min(ffers.length,userLimit); ffers.length = Math.min(ffers.length, userLimit);
} }
endn = endn.concat(ffing,ffers); endn = endn.concat(ffing, ffers);
endn = [...new Set(endn)]; endn = [...new Set(endn)];
if (mode && endn.length - oldLength > userLimit) break; 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); endn = endn.sort(fcg);
return endn; return endn;
@ -216,7 +220,7 @@ async function siteCollector(user, path, site, useLimit, data2) {
} }
out = out.concat(...users); out = out.concat(...users);
if (useLimit) { 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: [] }; if (!data2[user]) data2[user] = { following: [], followers: [] };
@ -235,7 +239,6 @@ async function siteCollector(user, path, site, useLimit, data2) {
users = [...new Set(users)]; users = [...new Set(users)];
let d = process.env.depth || 1;
for (let i = 1; i < d; i++) { for (let i = 1; i < d; i++) {
let tempSet = [...users]; let tempSet = [...users];
users = await rounder(tempSet, data, true); users = await rounder(tempSet, data, true);