EulerFriendDiff
by
z_kro
2013-11-11 [2013/11/11 19:53:47]
Project Euler の Friend 一覧(http://projecteuler.net/friends)で各ユーザーと自分との解答数の差分を表示する
-
/*
* @title EulerFriendDiff
* @description Project Euler の Friend 一覧(http://projecteuler.net/friends)で各ユーザーと自分との解答数の差分を表示する
* @include http://projecteuler.net/friends
* @license MIT License
* @require
*/
(function (){
if(!window.EulerFriendDiff){
var trs = document.getElementsByClassName('grid')[0].getElementsByTagName('tr');
var myScore;
var scores = [];
for(var i = 1; i < trs.length; ++i){
if(trs[i].style.height) {
var score = trs[i].childNodes[7].childNodes[0].innerHTML * 1;
scores.push(score);
if(trs[i].childNodes[14].childNodes[0].nodeType === 3) myScore = score;
}
}
var title = document.createElement('th');
title.innerHTML = "Difference";
title.style.width = "4em";
trs[0].appendChild(title);
for(var i = 1; i < trs.length; ++i){
if(trs[i].style.height) {
var elem = document.createElement('td');
var score = scores.shift();
var sign = score > myScore ? '+' : score < myScore ? '-' : '';
elem.innerHTML = sign + Math.abs(myScore - score);
elem.style.color = score > myScore ? 'red' : score < myScore ? 'blue' : 'green';
elem.style.textAlign = "center";
trs[i].insertBefore(elem, trs[i].childNodes[trs[i].childNodes.length-1]);
}
}
window.EulerFriendDiff = true;
}
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。