diff --git a/rank.js b/rank.js index 12ffe94..1b5e05f 100644 --- a/rank.js +++ b/rank.js @@ -68,9 +68,12 @@ function rankCalc(result, iterations = 10, main = [], domain_mode = false) { matrixe[n] = 1.1 + 1 / (dst + 3); msum_old += matrixe[n]; } + if (main.indexOf(unn) != -1) { + matrixe[(keys.indexOf(unn) || 0) * (rl+1)] *= 2; + } } - let mm = (process.env.matrixIterations || iterations); + let mm = (iterations); let gpu = new GPU(); const multiplyMatrix = gpu.createKernel(function (a, b, c) { diff --git a/site.js b/site.js index 2478414..39a9670 100644 --- a/site.js +++ b/site.js @@ -241,63 +241,60 @@ async function siteCollector(user, path, site, useLimit, data2) { users = [...new Set(users)]; - for (let i = 1; i < d; i++) { - let tempSet = [...users]; - users = await rounder(tempSet, data, true); - users = [...new Set(users)]; - } + let dat; + for (let i = 0; i < d; i++) { + if (i != 0) { + let tempSet = dat.map(x => x[0]); + users = await rounder(tempSet, data, true); + users = [...new Set(users)]; + } + for (let uf of users) { + let u = data[uf]; + if (!u) continue; + let { following, followers } = u; + if (!following || !followers) continue; - console.log(`Graph is fully downloaded (${Object.keys(users).length} entries)`); + try { + if (site == 'url') { + let o = new URL(new URL(uf).origin).toString(); - for (let uf of users) { - let u = data[uf]; - if (!u) continue; - let { following, followers } = u; - if (!following || !followers) continue; + if (followers.indexOf(o) == -1) { + followers.push(o) + } + } + } catch (err) { + } - try { - if (site == 'url') { - let o = new URL(new URL(uf).origin).toString(); - - if (followers.indexOf(o) == -1) { - followers.push(o) + for (let f of followers) { + if (!data[f]) data[f] = { followers: [] }; + if (!data[f].following) data[f].following = []; + if (data[f].following.indexOf(uf) == -1) { + data[f].following.push(uf); } } - } catch (err) { - } - - for (let f of followers) { - if (!data[f]) data[f] = { followers: [] }; - if (!data[f].following) data[f].following = []; - if (data[f].following.indexOf(uf) == -1) { - data[f].following.push(uf); + for (let f of following) { + if (!data[f]) data[f] = { following: [] }; + if (!data[f].followers) data[f].followers = []; + if (data[f].followers.indexOf(uf) == -1) { + data[f].followers.push(uf); + } } } - for (let f of following) { - if (!data[f]) data[f] = { following: [] }; - if (!data[f].followers) data[f].followers = []; - if (data[f].followers.indexOf(uf) == -1) { - data[f].followers.push(uf); - } + console.log(`Graph is fully repaired`); + dat = Object.entries(rankCalc(data, (i == d - 1) ? process.env.matrixIterations : 3, penv, site == 'url')); + dat = dat.sort((a, b) => b[1] - a[1]); + console.log(`Graph is calculated`); + let dat2 = {}; + for (let d of dat) { + dat2[d[0]] = d[1] * 100 + "%"; } + + let srz = JSON.stringify(dat2); + let ff = `./users_${i}.json`; + await writeFile(ff, srz, 'utf8'); + console.log(`Temporary file ${ff} is written`); } - for (let a in data) { - if (users.indexOf(a) == -1) { - delete data[a]; - } - } - - console.log(`Graph is fully repaired`); - let dat = Object.entries(rankCalc(data, 100, penv, site == 'url')); - dat = dat.sort((a, b) => b[1] - a[1]); - let dat2 = {}; - for (let d of dat) { - dat2[d[0]] = d[1] * 100 + "%"; - } - - let srz = JSON.stringify(dat2); - console.log(`Data is calculated`); - await writeFile(`./users.json`, srz, 'utf8'); - console.log(`Everything is done`); + console.log(`Graph is complete (${Object.keys(users).length} entries)`); + })()