This commit is contained in:
dervperson 2025-02-01 00:54:51 -05:00
parent ffc071adbb
commit bcabd7fc18

15
site.js
View file

@ -78,16 +78,15 @@ async function rounder(users, data, mode) {
}, (process.env.delay * 1000) || (60 * 1000))) }, (process.env.delay * 1000) || (60 * 1000)))
for (let u of users) { for (let u of users) {
if (timeout) break;
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;
let pv = await Promise.any([...p, pr]);
if (timeout) { if (timeout) {
console.warn(`Somehow, this is stuck.`); console.warn(`Somehow, this is stuck.`);
break; break;
} }
if (p.length == 0) break;
let pv = await Promise.any([...p,pr]);
it++; it++;
if (it > 10) { if (it > 10) {
console.warn(`Promises got congested. Moving to another array...`) console.warn(`Promises got congested. Moving to another array...`)
@ -96,11 +95,12 @@ async function rounder(users, data, mode) {
break; break;
} }
} }
if (timeout) break;
data[u] = { followers: [], following: [] }; data[u] = { followers: [], following: [] };
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 fully calculated`); console.log(`User ${u} followers is fully calculated`);
p[k] = 'hi'; p[k] = 'hi';
}(p.length)); }(p.length));
@ -108,7 +108,7 @@ 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 fully calculated`); console.log(`User ${u} following is fully calculated`);
p[k] = 'hi'; p[k] = 'hi';
}(p.length)); }(p.length));
@ -222,6 +222,8 @@ async function siteCollector(user, path, site, useLimit, data2) {
users = [...new Set(users)]; users = [...new Set(users)];
} }
console.log(`Graph is fully downloaded`);
for (let uf in data) { for (let uf in data) {
let u = data[uf]; let u = data[uf];
if (!u) continue; if (!u) continue;
@ -255,6 +257,7 @@ async function siteCollector(user, path, site, useLimit, data2) {
} }
} }
console.log(`Graph is fully repaired`);
let dat = Object.entries(rankCalc(data, 100, penv, site == 'url')); let dat = Object.entries(rankCalc(data, 100, penv, site == 'url'));
dat = dat.sort((a, b) => a[1] - b[1]); dat = dat.sort((a, b) => a[1] - b[1]);
let dat2 = {}; let dat2 = {};
@ -263,5 +266,7 @@ async function siteCollector(user, path, site, useLimit, data2) {
} }
let srz = JSON.stringify(dat2); let srz = JSON.stringify(dat2);
console.log(`Data is calculated`);
await writeFile(`./users.json`, srz, 'utf8'); await writeFile(`./users.json`, srz, 'utf8');
console.log(`Everything is done`);
})() })()