// ==UserScript==
// @name TrustScan Update
// @namespace http://www.hackforums.net/member.php?action=profile&uid=1769039
// @version 1.0
// @description Update for Hackforums Trust Scan
// @author LazySoftware
// @match http://www.hackforums.net/trustscan.php?uid=*
// @downloadURL https://update.greasyfork.icu/scripts/9878/TrustScan%20Update.user.js
// @updateURL https://update.greasyfork.icu/scripts/9878/TrustScan%20Update.meta.js
// ==/UserScript==
// ======== Fix Table ======== \\
document.getElementsByClassName("thead")[1].colSpan = "3";
document.getElementsByClassName("tborder")[1].insertRow(1).innerHTML = "
Information | Result | Score | ";
document.getElementsByClassName("tborder")[1].insertRow(document.getElementsByClassName("tborder")[1].rows.length).innerHTML = "Trust Score: | 0% | 0/0 | ";
for (i=2;i<13;i++){
var newCell = document.getElementsByClassName("tborder")[1].rows[i].insertCell(2);
newCell.innerHTML = "0/0 | ";
newCell.className = "trow1";
newCell.align = "center";
}
// ======== Gather all data ======== \\
var TrustScan_Header = document.getElementsByClassName("tborder")[1].rows[0];
var Information_Header = document.getElementsByClassName("tborder")[1].rows[1];
var Gauth_Data = document.getElementsByClassName("tborder")[1].rows[2];
var LastEmail_Data = document.getElementsByClassName("tborder")[1].rows[3];
var CountryLogins_Data = document.getElementsByClassName("tborder")[1].rows[4];
var LoginIPs_Data = document.getElementsByClassName("tborder")[1].rows[5];
var UniqueISPs_Data = document.getElementsByClassName("tborder")[1].rows[6];
var MatchingRegistration_Data = document.getElementsByClassName("tborder")[1].rows[7];
var MatchingRegion_Data = document.getElementsByClassName("tborder")[1].rows[8];
var IPMatching_Data = document.getElementsByClassName("tborder")[1].rows[9];
var DealDisputes_Data = document.getElementsByClassName("tborder")[1].rows[10];
var PasswordReset_Data = document.getElementsByClassName("tborder")[1].rows[11];
var IPChangeDate_Data = document.getElementsByClassName("tborder")[1].rows[12];
var TrustScore_Data = document.getElementsByClassName("tborder")[1].rows[13];
// ======== Trust Score Editting ======== \\
function updateScore(rowData, updatedScore, scoreMax) {
rowData.getElementsByTagName("td")[2].innerHTML = updatedScore + "/" + scoreMax;
}
function getData(rowData) {
return rowData.getElementsByTagName("td")[1].innerHTML;
}
// ======== Trust Score Calcularor ======= \\
var totalTrustScore = 0;
var checkHacked = 0;
// Gauth/2FA activation date:
if (getData(Gauth_Data) == "Not Activated") {
updateScore(Gauth_Data, 0, 20);
} else {
updateScore(Gauth_Data, 20, 20);
totalTrustScore += 20;
}
// Last Email Change:
if (getData(LastEmail_Data) == "No Changes") {
updateScore(LastEmail_Data, 10, 10);
totalTrustScore += 10;
} else {
updateScore(LastEmail_Data, 5, 10);
totalTrustScore += 5;
checkHacked += 1;
}
// Number of Unique Country Logins:
if (getData(CountryLogins_Data) == "1") {
updateScore(CountryLogins_Data, 20, 20);
totalTrustScore += 20;
} else if (getData(CountryLogins_Data) == 2) {
updateScore(CountryLogins_Data, 10, 20);
totalTrustScore += 10;
} else if (getData(CountryLogins_Data) > 2) {
updateScore(CountryLogins_Data, 0, 20);
checkHacked += 1;
}
// Number of Unique Login IP's:
updateScore(LoginIPs_Data, "N", "A");
// Number of Unique ISP's:
if (getData(UniqueISPs_Data) == "1") {
updateScore(UniqueISPs_Data, 20, 20);
totalTrustScore += 20;
} else if (getData(UniqueISPs_Data) == 2) {
updateScore(UniqueISPs_Data, 10, 20);
totalTrustScore += 10;
} else if (getData(UniqueISPs_Data) > 2) {
updateScore(UniqueISPs_Data, 0, 20);
checkHacked += 1;
}
// Matching registration and last IP:
updateScore(MatchingRegistration_Data, "N", "A");
// Matching region of registration and latest IP:
updateScore(MatchingRegion_Data, "N", "A");
// Latest IP Matching Other Members:
if (getData(IPMatching_Data) > 0) {
updateScore(IPMatching_Data, 0, 30);
checkHacked += 5;
} else {
updateScore(IPMatching_Data, 30, 30);
totalTrustScore += 30;
}
// Deal Disputes (Claimant/Defendant):
if (getData(DealDisputes_Data).split('/')[1] > 0) {
updateScore(DealDisputes_Data, 0, 100);
} else {
updateScore(DealDisputes_Data, 100, 100);
totalTrustScore += 100;
}
// Password Reset in Last Week:
if (getData(PasswordReset_Data) == "No") {
updateScore(PasswordReset_Data, 50, 50);
totalTrustScore += 50;
} else {
updateScore(PasswordReset_Data, 0, 50);
checkHacked += 5;
}
// Last Login IP Change Date:
updateScore(IPChangeDate_Data, "N", "A");
// Update Trust Score:
updateScore(TrustScore_Data, totalTrustScore, 250);
TrustScore_Data.getElementsByTagName("td")[1].innerHTML = totalTrustScore / 250 * 100 + "%";
// ======== Deal Disputes Warning ======== \\
var DealDisputesCount = getData(DealDisputes_Data).split('/')[1];
if (DealDisputesCount > 0) {
document.getElementsByClassName("tborder")[1].insertAdjacentHTML("beforeBegin", "WARNING:This user has open scam reports!
");
}
// ======== Add Pro/Con Table ======== \\
document.getElementsByClassName("tborder")[1].insertAdjacentHTML("afterend", "
| More Information |
| Pros;Cons; |
");
if ((totalTrustScore / 250 * 100) < 70) {
document.getElementById("cons").innerHTML += "This users trust score is below 70%!
";
} else {
document.getElementById("pros").innerHTML += "This users trust score is above 70%
";
}
if (DealDisputesCount > 0) {
document.getElementById("cons").innerHTML += "This user has an open scam report!
";
} else {
document.getElementById("pros").innerHTML += "This user has no open scan reports.
";
}
if (checkHacked > 3) {
document.getElementById("cons").innerHTML += "This user may have been hacked recently! (Scored: " + checkHacked + "/18)
";
} else {
document.getElementById("pros").innerHTML += "This user seems to have not been hacked.
";
}