A felhasználói adatlapokon kiszámolódik a következő ranghoz szükséges HSZ-ek száma, és a következő rang is.
// ==UserScript==
// @name PH! kalkulátor
// @namespace http://prohardver.hu/tag/ursache.html
// @version 0.4
// @description A felhasználói adatlapokon kiszámolódik a következő ranghoz szükséges HSZ-ek száma, és a következő rang is.
// @author Ursache
// @include /^https://(prohardver|itcafe|gamepod|logout|mobilarena)\.hu/tag/*/
// ==/UserScript==
//PH! által megadott súlyok
const szakmai_suly = 1;
const kozossegi_suly = 0.25;
const piaci_suly = 0.1;
//PH! által megadott rangok és határaik
const rangok = ["újonc", "lelkes újonc", "kvázi-tag", "tag", "fanatikus tag", "senior tag", "őstag", "PH! addikt", "PH! kedvence", "PH! nagyúr", "PH! félisten", "Jómunkásember"];
const hatarok = [0, 50, 100, 200, 400, 800, 1750, 3500, 6000, 10000, 17000, 25000];
const napok = [0, 15, 30, 60, 100, 180, 270, 365, 450, 600, 850, 1100];
//A regnapokat egyszerűbb "lekérni" reguláris kifejezéssel
const pattern = /, azaz [0-9]+ napja - /;
var sulyozott = getWeightedComment();
var result = document.body.textContent.match(pattern);
var regnapok = parseInt(result[result.length-1].split(' ')[2]);
var j;
for (j = 0; sulyozott >= hatarok[j] && j < hatarok.length; j++);
var rang_header = "<br><h1>Következő rang: " + rangok[j] + "</h1>";
var rang_p = "<p>" + (hatarok[j] - sulyozott) + " db hozzászólás kell a következő rangodhoz.</p>";
var nap_p = "<p>" + Math.max(napok[j] - regnapok, 0) + " nap kell a következő rangodhoz.</p>";
if (j == hatarok.length)
{
rang_header = "<br>";
rang_p = "<h1>Gratulálok, elérted a legnagyobb rangot!</h1>";
nap_p = "";
}
var div = document.createElement("div");
div.innerHTML = rang_header;
div.innerHTML += rang_p;
div.innerHTML += nap_p;
//document.body.childNodes[1].childNodes[1].appendChild(div);
document.getElementsByClassName("full inline center")[0].appendChild(div);
function getWeightedComment()
{
var as = document.getElementsByClassName("tiny");
var szakmai = parseInt(as[0].childNodes[3].textContent);
szakmai = isNaN(szakmai)? 0 : szakmai;
var kozossegi = parseInt(as[1].childNodes[3].textContent);
kozossegi = isNaN(kozossegi)? 0 : kozossegi;
var piaci = parseInt(as[2].childNodes[3].textContent);
piaci = isNaN(piaci)? 0 : piaci;
return parseInt(szakmai_suly * szakmai + kozossegi_suly * kozossegi + piaci_suly * piaci);
}