Skip to content

Instantly share code, notes, and snippets.

@mangei
Last active November 8, 2019 15:57
Show Gist options
  • Save mangei/7e2976c263d99235b768ffba9f099806 to your computer and use it in GitHub Desktop.
Save mangei/7e2976c263d99235b768ffba9f099806 to your computer and use it in GitHub Desktop.
Coding Contest - Result Cleanup
// ==UserScript==
// @name Coding Contest - Result Cleanup
// @version 1.1.0
// @author Manuel Geier
// @match https://www.google.at/search?q=userscript&rlz=1C1GGRV_enAT751AT751&oq=userscript&aqs=chrome..69i57j69i59j35i39j0l3.4415j0j7&sourceid=chrome&ie=UTF-8
// @grant none
// @include *codingcontest.org/contest/*
// ==/UserScript==
var load,execute,loadAndExecute;load=function(a,b,c){var d;d=document.createElement("script"),d.setAttribute("src",a),b!=null&&d.addEventListener("load",b),c!=null&&d.addEventListener("error",c),document.body.appendChild(d);return d},execute=function(a){var b,c;typeof a=="function"?b="("+a+")();":b=a,c=document.createElement("script"),c.textContent=b,document.body.appendChild(c);return c},loadAndExecute=function(a,b){return load(a,function(){return execute(b)})};
loadAndExecute("https://code.jquery.com/jquery-3.3.1.js", function() {
var showTop3 = false;
var rankTable = $(".content table").first();
// remove all icons
$("img[src*=gold]").remove();
$("img[src*=silver]").remove();
$("img[src*=bronze]").remove();
// add top rank icons
var imgGold = document.createElement('img')
imgGold.src = "/images/icons/gold.png";
$(imgGold).css("padding-left", "1rem");
var imgSilver = document.createElement('img')
imgSilver.src = "/images/icons/silver.png";
$(imgSilver).css("padding-left", "1rem");
var imgBronze = document.createElement('img')
imgBronze.src = "/images/icons/bronze.png";
$(imgBronze).css("padding-left", "1rem");
addToRank("1", imgGold);
addToRank("2", imgSilver);
addToRank("3", imgBronze);
// remove finished column
rankTable.find("tr").find("th:eq(5)").remove();
rankTable.find("tr").find("td:eq(5)").remove();
// bold top ranks
rankTable.find("tr").find("td:eq(0)").filter(function() {
var rank = parseInt($(this).text())
return rank >= 1 && rank <= 30;
}).closest("tr").css("font-weight", "bold");
// remove ranks
rankTable.find("tr").find("td:eq(0)").filter(function() {
var rank = parseInt($(this).text())
return !(rank >= 1 && rank <= 30);
}).closest("tr").remove();
if(!showTop3) {
// remove ranks
rankTable.find("tr").find("td:eq(0)").filter(function() {
var rank = parseInt($(this).text())
return rank >= 1 && rank <= 3;
}).closest("tr").remove();
}
// remove lottery tickets table
$("th:contains('Lottery tickets')").closest("table").remove();
function addToRank(rank, element) {
rankTable.find("tr:eq("+rank+")").find("td:eq(0)").filter(function() {
return $(this).text() === rank;
}).get(0).appendChild(element);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment