NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name lj stat
// @namespace torn.com
// @include *torn.com/personalstats.php*
// @author Ahab [1735214]
// @version 0.2
// @license MIT
// ==/UserScript==
var observerTarget = $('div[class*="users___"]')[0];
var observerConfig = { attributes: false, childList: true, characterData: false, subtree: false };
var observer = new MutationObserver(function(mutations) {
dataCheck()
});
observer.observe(observerTarget, observerConfig);
function dataCheck(){
var check = setInterval(() => {
if($("[class*='statValue']").length > 0 && $("a").is("[class*='drugs___'][class*=' active___']")){
if($('div[aria-label*="Love Juice Taken"]')){
$('div[aria-label*="Love Juice Taken"]').closest($('div[class*="statRow___"]')).remove()
}
clearInterval(check)
lj()
}
}, 50);
}
function lj(){
var cols = $('div[class*=titleItem]:not(#drugs)').length +1
var rows = $('div[class*=statRows]:not(div[class*=statName])').children().length
var rowClass = $("[class*='categoriesValues'] [class*='statRow']:not([class*='statRows'])")[0].className
var nameClass = $("[class^='statName']:not(#drugs)")[0].classList[0]
var valueClass = $("[class*='statValue']")[0].classList[0]
var best = $('div[class*=best]')[0]?.classList[1] || 0
var worse = $('div[class*=worse]')[0]?.classList[1] || 0
var current = $('div[class*=current]')[0]?.classList[1] || 0
var div = $('<div class="'+rowClass+'"><div class="'+nameClass+'" aria-label="Love Juice Taken">Love Juice Taken</div></div>')
for(var i = 1; i < cols; i++) {
var totalDrugs = parseInt($("[class*='categoriesValues'] [class*='statRow']:not([class*='statRows'])")[0].children[i].children[1].innerText.replace(/\,/g,''))
for (let j = 4; j < rows; j++) {
totalDrugs -= parseInt($("[class*='categoriesValues'] [class*='statRow']:not([class*='statRows'])")[j].children[i].children[1].innerText.replace(/\,/g,''))
}
div.append('<div class="'+valueClass+'"><span>'+totalDrugs+'</span></div>')
}
div.find("div[class*='statValue']").first().addClass(current)
var spans = div.find("div[class*='statValue'] span");
var nums = spans.map(function () {
return Number($(this).text());
}).get();
var min = Math.min(...nums);
var max = Math.max(...nums);
if(min !== max){
var minCount = nums.filter(n => n === min).length;
var maxCount = nums.filter(n => n === max).length;
spans.each(function(){
var val = Number($(this).text().replace(/,/g, "").trim());
if(val === min && minCount === 1){
$(this).parent().addClass(worse);
}
if(val === max && maxCount === 1){
$(this).parent().addClass(best);
}
});
}
$('div[class*=statRows]:not(div[class*=statName])').append(div)
}
$(document).on("click", "a[class*='drugs']", function() {
dataCheck()
});