diff --git a/rank.js b/rank.js index f354559..d6514a7 100644 --- a/rank.js +++ b/rank.js @@ -10,6 +10,20 @@ function rankCalc(result, iterations = 10, main = [], domain_mode = false) { let rl = Object.keys(result).length; for (let unn in result) { + let v = false; + if (domain_mode) { + v = false; + try { + let test = new URL(unn); + v = true; + } catch (err) { + v = false; + } + } + if (!v) { + delete result[unn]; + continue; + } matrixe[unn] = {}; matrixe[unn][unn] = 1; @@ -38,6 +52,8 @@ function rankCalc(result, iterations = 10, main = [], domain_mode = false) { pr[unn] = 0.1 / rl; } + + for (let unn in result) { let fnu = frs[unn]; for (let follow of fnu) { @@ -114,18 +130,19 @@ function rankCalc(result, iterations = 10, main = [], domain_mode = false) { } let ov = Object.keys(pr); - let new_sum = ov.filter(i => !isNaN(pr[i]) && main.indexOf(i) != -1).map(n => pr[n]).reduce((a, b) => a + b, 1e-9); - let new_sum2 = ov.filter(i => !isNaN(pr[i]) && main.indexOf(i) == -1 && i.includes(main[0])).map(n => pr[n]).reduce((a, b) => a + b, 1e-9); - let new_sum3 = ov.filter(i => !isNaN(pr[i]) && main.indexOf(i) == -1 && !i.includes(main[0])).map(n => pr[n]).reduce((a, b) => a + b, 1e-9); + let new_sum2 = ov.filter(i => !isNaN(pr[i]) && main.indexOf(i) == -1 && (domain_mode && new URL(i).host == new URL(main[0]).host)).map(n => pr[n]).reduce((a, b) => a + b, 1e-9); + let new_sum3 = ov.filter(i => !isNaN(pr[i]) && main.indexOf(i) == -1 && !(domain_mode && new URL(i).host == new URL(main[0]).host)).map(n => pr[n]).reduce((a, b) => a + b, 1e-9); - for (let unn in result) { - if (unn.includes(main) && main.indexOf(unn) == -1) { - pr[unn] /= new_sum2 * 4; + for (let unn of ov) { + if (!result[unn]) { + pr[unn] = 0; + } else if ((domain_mode && new URL(unn).host == main[0]) && main.indexOf(unn) == -1) { + pr[unn] /= new_sum2 * 3; } else if (main.indexOf(unn) == -1) { - pr[unn] /= new_sum3 * 4; + pr[unn] /= new_sum3 * (domain_mode ? 3 : 2); } else { - pr[unn] /= new_sum * 2; + pr[unn] /= new_sum * (domain_mode ? 3 : 2); } }