Shows your actual buffer(to 1.0 ratio) next to blutopias buffer(0.4 ratio)
// ==UserScript==
// @name Blutopia actual buffer
// @description Shows your actual buffer(to 1.0 ratio) next to blutopias buffer(0.4 ratio)
// @match http://blutopia.xyz/*
// @match https://blutopia.xyz/*
// @exclude /https?:\/\/blutopia\.xyz\/login/
// @exclude /https?:\/\/blutopia\.xyz\/register/
// @exclude /https?:\/\/blutopia\.xyz\/password\/reset/
// @exclude /https?:\/\/blutopia\.xyz\/username\/reminder/
// @exclude /https?:\/\/blutopia\.xyz\/application/
// @exclude /https?:\/\/blutopia\.xyz\/rss\/.*/
// @version 0.0.1.20200714150437
// @namespace https://greasyfork.org/users/656892
// ==/UserScript==
try {
var fileSize = /(\d+\.\d+) (([PTG]i)?B)/;
var li = document.getElementById("main-content").getElementsByClassName("list-inline")[0].getElementsByTagName("li");
var upload = toGiB(trimHTML(li[2].innerHTML));
var download = toGiB(trimHTML(li[3].innerHTML));
li[5].innerHTML = li[5].innerHTML.replace("iB", "iB / " + GiBtoString((upload - download)));
} catch(err) { /*prob on a page without the header thing*/ }
function trimHTML(string) {
return string.replace(/(<([^>]+)>)|\n|/,"").replace(/ {2,}/, " ").trim();
}
function toGiB(string) {
var regexp = string.match(fileSize);
if(regexp == null) {
return 0;
}
var size = parseFloat(regexp[1]);
var unit = regexp[2];
var factor;
switch(unit) {
case "PiB":
factor = 1024*1024;
break;
case "TiB":
factor = 1024;
break;
case "GiB":
factor = 1;
break;
default:
return 0;
}
return size * factor;
}
function GiBtoString(GiB) {
var TiB = 1024;
var PiB = TiB*TiB;
var unit = " GiB";
var size = GiB;
if(GiB >= TiB && GiB < PiB) {
unit = " TiB";
size = GiB/TiB;
} else if(GiB >= PiB) {
unit = " PiB";
size = GiB/PiB;
}
return size.toFixed(2) + unit;
}