various QoL improvements to aither
当前为
// ==UserScript==
// @name Aither++
// @namespace https://aither.cc/
// @version 0.1
// @description various QoL improvements to aither
// @author Seraph2
// @match https://aither.cc/*
// @grant none
// ==/UserScript==
function statsChange() {
var badges = document.getElementsByClassName("badge-user");
var upload = badges[2];
var download = badges[3];
var ratio = badges[4];
var buffer = badges[5];
var warnings = badges[8];
var bon = badges[9];
var tokens = badges[10];
var stats = [upload, download, ratio, buffer, warnings, bon, tokens];
var counter = 0;
var item;
for (const badge of stats){
// this looks disgusting lol
switch (counter) {
case 0:
item = "upload";
break;
case 1:
item = "download";
break;
case 2:
item = "ratio";
break;
case 3:
item = "buffer";
break;
case 4:
item = "warnings";
break;
case 5:
item = "bon";
break;
case 6:
item = "tokens";
break;
}
var storedValue = localStorage.getItem(item);
var currentValue = badge.textContent.replace( /^\D+/g, '');
// converts all transfer quantities into GB
if (currentValue.includes("TiB")) {
currentValue = currentValue.split(" ")[0] * 1000;
} else {
if (currentValue.includes("GiB")) {
currentValue = currentValue.split(" ")[0];
}
}
var newCurrentValue;
if (item != "bon") {
newCurrentValue = parseFloat(currentValue);
} else {
newCurrentValue = parseInt(currentValue.split(" ").join(""));
}
if (storedValue) {
var change = (newCurrentValue - storedValue);
if (["warnings", "tokens"].includes(item)) {
change = change.toPrecision(1);
} else {
change < 1 ? change = change.toPrecision(1) : change = +change.toFixed(2);
}
var ending;
if (["upload", "download", "buffer"].includes(item)) {
ending = " GiB";
} else {
ending = "";
}
if (change && change != 0) {
var span = document.createElement("span");
var changeIsPositive;
Math.sign(change) == 1 ? changeIsPositive = 1 : changeIsPositive = 0;
if (["upload", "ratio", "buffer", "bon", "tokens"].includes(item)) {
if (changeIsPositive == 1) {
span.innerHTML = " +" + change.toString() + ending;
span.style.cssText = "color:green;"
badge.appendChild(span);
} else {
span.innerHTML = " " + change.toString() + ending;
span.style.cssText = "color:red;"
badge.appendChild(span);
}
} else {
if (changeIsPositive == 1) {
span.innerHTML = " +" + change.toString() + ending;
span.style.cssText = "color:red;"
badge.appendChild(span);
} else {
span.innerHTML = " " + change.toString() + ending;
span.style.cssText = "color:green;"
badge.appendChild(span);
}
}
}
localStorage.setItem(item, newCurrentValue);
} else {
localStorage.setItem(item, newCurrentValue);
}
counter++;
}};
statsChange();