Code: Select all
// ==UserScript==
// @name ICM Progress
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://*.icheckmovies.com/profiles/progress/*
// @grant none
// ==/UserScript==
let counts = [1, 10, 100, 250, 500, 750, 1000, 1500, 2000, 3500, 4000];
let aim = 500;
let allLists = document.getElementById('progressall');
let allRanksRaw = allLists.querySelectorAll(':scope > li .rank a');
let allRanks = [];
for (let i=0; i < allRanksRaw.length; ++i) {
allRanks.push(allRanksRaw[i].innerHTML.substring(1));
}
allRanks.sort(function(a, b){return a-b});
let results = [];
let countIndex = 0;
let countPositions = 0;
let countRanks = 0;
for (let j=0; j < allRanks.length; ++j) {
if (allRanks[j] > counts[countIndex]){
results.push(j);
countIndex++;
} else if (j == (allRanks.length - 1)){
results.push(j+1);
}
if (allRanks[j] > aim) {
countPositions += (allRanks[j] - aim);
}
countRanks += parseInt(allRanks[j]);
}
let extraInfo = '<div class="ohExtraInfo">';
extraInfo += '<table><thead><tr>'
for (let k=0; k < counts.length; ++k) {
extraInfo += '<th>T' + counts[k] + '</th>'
}
extraInfo += '</tr></thead><tbody><tr>';
for (let k=0; k < results.length; ++k) {
extraInfo += '<td>' + results[k] + '</td>'
}
extraInfo += '</table>';
extraInfo += '<div>T' + aim + ' overshoot: ' + countPositions + '</div>'
extraInfo += '<div>Sum of all ranks: ' + countRanks + '</div>'
extraInfo += '<style>.ohExtraInfo {margin-bottom:20px;} .spec {display:flex; margin:4px 0;}.spec .label {font-weight:700; flex-basis:160px;}';
let printExtraLocation = document.getElementById('progressFilter');
printExtraLocation.insertAdjacentHTML('beforebegin', extraInfo);
