Backlinktool
by fnagel
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>MadMen Backlink-Tool</title>
<script src="./script.js"></script>
</head>
<body>
<em>Nothing to see here -> hit F12 and see console!</em>
</body>
</html>
JavaScript
// const file = './companies.json';
const amountOfPartners = 3;
getJson().then(function(companies) {
const companyCount = companies.length;
// Prepare data
companies.forEach(function(company) {
if (!company.partners) {
company.partners = [];
}
if (!company.partnerCount) {
company.partnerCount = 0;
}
});
// Process data
companies.forEach(function(company) {
let count = 0;
while (company.partners.length < amountOfPartners && count <= companyCount) {
addPartner(companies, company)
count++;
}
});
console.table(companies, ["id", "name", "partners", "partnerCount"]);
// Output tests / stats
console.groupCollapsed("tests");
let totalPartners = 0;
companies.forEach(function(company) {
let text = "Hat " + company.partners.length + " Partner / ist " + company.partnerCount + " mal Partner";
totalPartners += company.partners.length;
if (company.partners.length === amountOfPartners) {
console.info(company, text);
} else {
console.warn(company, text);
}
});
console.log("Anzahl Partner: " + totalPartners + " / " + companyCount * amountOfPartners + " => "
+ ((totalPartners / (companyCount * amountOfPartners)) * 100).toPrecision(2) + "%");
console.groupEnd("tests")
});
function addPartner(companies, company) {
console.debug("findPartner start", company);
let partner = findPartner(companies, company);
console.debug("findPartner end", partner);
if (partner) {
company.partners.push(partner);
partner.partnerCount++;
}
}
const isPartner = function(partners, company) {
return partners.find(element => element.id === company.id);
};
function findPartner(companies, company) {
findPartnerLoop: for (let i = 0; i < companies.length; i++) {
let possiblePartner = companies[i];
// A company...