Color difference values of AtCoder's gradebook
Per
// ==UserScript==
// @name AtCoderColouringDifference
// @namespace https://chocobo777.github.io
// @version 0.0.3
// @description Color difference values of AtCoder's gradebook
// @author chocobo
// @include https://beta.atcoder.jp/users/*/history
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==
$(function() {
'use strict';
/*
色づけモード
0: 色なし
1: 文字
2: 背景
*/
var colouringMode = 2;
// 読み込み元と整合性を取る
// https://wiki.greasespot.net/Third-Party_Libraries
this.$ = this.jQuery = jQuery.noConflict(true);
// 背景色
function convertvalueToColorCode(value){
if(value >= 2800) return '#FFB2B2';
if(value >= 2400) return '#FFD9B2';
if(value >= 2000) return '#ECECB2';
if(value >= 1600) return '#B2B2FF';
if(value >= 1200) return '#B2ECEC';
if(value >= 800) return '#B2D9B2';
if(value >= 400) return '#D9C5B2';
return '#D9D9D9';
}
// 文字色
function convertvalueToColorClass(value){
if(value >= 2800) return 'user-red';
if(value >= 2400) return 'user-orange';
if(value >= 2000) return 'user-yellow';
if(value >= 1600) return 'user-blue';
if(value >= 1200) return 'user-cyan';
if(value >= 800) return 'user-green';
if(value >= 400) return 'user-brown';
return 'user-gray';
}
// セルをmodeで色づけ
function colouringCell(cell, mode){
const value = cell.text();
console.log(cell);
if(isNaN(value)) return;
if (mode == 0) { // 色づけしない
cell.text(value);
}
else if (mode == 1) { // 文字を色づけ
cell.text('');
cell.append('<span class="' + convertvalueToColorClass(value) + '">' + value + '</span>');
}
else if (mode == 2) { // 背景を色づけ
cell.text(value);
cell.attr('style', 'background-color:' + convertvalueToColorCode(value) + ';>');
}
}
$('#history').find('tbody').find('tr').each(function(i, contestInfo) {
const tds = $(contestInfo).find('td');
colouringCell($(tds[5]), colouringMode);
});
});