您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Colorize standings pages at Codeforces by used programming language
当前为
// ==UserScript== // @name Colorize standings for Codeforces // @namespace http://yak2.myhome.cx/ // @description Colorize standings pages at Codeforces by used programming language // @license http://creativecommons.org/publicdomain/zero/1.0/ // @copyright yak_ex // @version 1.6 // @include http://www.codeforces.com/contest/*/standings* // @include http://www.codeforces.com/contest/*/room/* // @include http://codeforces.com/contest/*/standings* // @include http://codeforces.com/contest/*/room/* // @include http://www.codeforces.ru/contest/*/standings* // @include http://www.codeforces.ru/contest/*/room/* // @include http://codeforces.ru/contest/*/standings* // @include http://codeforces.ru/contest/*/room/* // ==/UserScript== // v1.6 2015/05/05 Add GNU C11. // Add GNU C++11, unified with GNU C++0x. // Add PyPy, unified with PyPy 2 and PyPy 3. // v1.5 2014/06/01 Add Java 8 and JavaScript. // v1.4 2013/05/07 Split Python to Python 2 and Python 3. // Split C# to Mono C# and MS C# // Add D and Go. // v1.3 2012/06/05 Add Java 6, Java 7 and Perl support // v1.2 2012/06/05 Record marked languages into cookie to be persistent, at least, between reloads. // Thanks for suggestion by iTwin // v1.1 2011/12/10 Add Scala and OCaml support // Version jump because Chrome recognizes 0.0x as 1.0 // v0.02 2011/05/05 Enable on standings for specific division and rooms // Add a feature to highlight specific language // v0.01 2011/05/05 Initial version /////////////////////////////////////////////////////////////////////// // // The following part is executed in content page scope // // There is no significant need to execute in content space scope. // A bit is jQuery has already loaded in content space scope. function colorize() { // 0: target language name(s), which is/are shown in tooltip on cell // 1: CSS class name, you can specify it as you like as long as no duplication // 2: CSS style // 3: optional, display name in legend. Not specified, the first target language name is used. var spec = [ // Delphi 7 [ 'Delphi', 'l-delphi', 'background-color: #ffff99 !important; border: dashed #ff6633;' ], // Free Pascal 2 [ 'FPC', 'l-fpc', 'background-color: #ffff99 !important;' ], // GNU C++11 4.9.2 [ [ 'GNU C++11', 'GNU C++0x'], 'l-gcpp11', 'background-color: #ccffff !important; border: double #6666ff;' ], // GNU C++ 4.9.2 [ 'GNU C++', 'l-gcpp', 'background-color: #ccffff !important;' ], // GNU C11 4.9.2 [ 'GNU C11', 'l-gcc11', 'background-color: #ccffff !important; border: solid #6666ff;' ], // GNU C 4.9.2 [ 'GNU C', 'l-gcc', 'background-color: #ccffff !important; border: dotted #6666ff;' ], // Microsoft Visual C++ 2010 [ 'MS C++', 'l-mscpp', 'background-color: #ccffff !important; border: dashed #6666ff;' ], // Java 8 [ 'Java 8', 'l-java8', 'background-color: #ffccff !important; border: dashed #ff33ff;' ], // Java 7 [ 'Java 7', 'l-java7', 'background-color: #ffccff !important; border: dotted #ff33ff;' ], // Java 6 [ 'Java 6', 'l-java6', 'background-color: #ffccff !important;' ], // C# Mono 2.10 [ 'Mono C#', 'l-mncsharp','background-color: #ffcc99 !important;' ], // MS C# .Net 4 [ 'MS C#', 'l-mscsharp','background-color: #ffcc99 !important; border: dashed #ff33ff;' ], // D DMD32 v2 [ 'D', 'l-d', 'background-color: #00ff99 !important;' ], // Go 1.2 [ 'Go', 'l-go', 'background-color: #33cccc !important;' ], // JavaScript V8 3 [ 'JavaScript' , 'l-js', 'background-color: #ccff99 !important; border: dashed #ff33ff;', 'JS' ], // Perl 5.12+ [ 'Perl', 'l-perl', 'background-color: #ccff99 !important; border: dashed #6666ff;' ], // PHP 5.3 [ 'PHP', 'l-php', 'background-color: #ccff99 !important; border: solid #cc00ff;' ], // Python 2.7 [ 'Python 2', 'l-python2', 'background-color: #ccff99 !important; border: solid #00cc00;' ], // Python 3.3 [ 'Python 3', 'l-python3', 'background-color: #ccff99 !important; border: dashed #00cc00;' ], // PyPy 2.5.0 // PyPy 3.2.5 [ ['PyPy 2', 'PyPy 3' ], 'l-pypy', 'background-color: #ccff99 !important; border: dotted #00cc00;', 'PyPy' ], // Ruby 2 [ 'Ruby', 'l-ruby', 'background-color: #ccff99 !important; border: solid #6666ff;' ], // Haskell GHC 7.6 [ 'Haskell', 'l-haskell', 'background-color: #ccccff !important; border: solid #cc00ff;' ], // OCaml 4 [ 'Ocaml', 'l-ocaml', 'background-color: #ccccff !important; border: solid #00cc00;' ], // Scala 2.11 [ 'Scala', 'l-scala', 'background-color: #ccccff !important; border: solid #6666ff;' ], ]; var dispname = function(arg) { return (arg.length >= 4) ? arg[3] : (arg[0] instanceof Array) ? arg[0][0] : arg[0]; }; var toarray = function(arg) { return (arg instanceof Array) ? arg : [arg]; }; $('table.standings').css('border-collapse', 'separate'); var style = '<style>.color-legend { border: solid #e1e1e1 1px; }\n'; var legend = '<table style="margin-left: auto; margin-right: auto; border-collapse: separate;"><tr>'; for(var i = 0; i < spec.length; ++i) { style += 'td.' + spec[i][1] + ' { ' + spec[i][2] + ' }\n'; legend += '<td style="padding: 0.5em;" class="color-legend ' + spec[i][1] + '">' + dispname(spec[i]) + '</td>'; } style += 'td.highlight-by-lang { background-repeat: no-repeat; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAAXNSR0IArs4c6QAAAv1QTFRFAIAAAAAAgIAAAACAgACAAICAgICAwMDA/wAAAP8A//8AAAD//wD/AP//////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAABmAACZAADMAAD/ADMAADMzADNmADOZADPMADP/AGYAAGYzAGZmAGaZAGbMAGb/AJkAAJkzAJlmAJmZAJnMAJn/AMwAAMwzAMxmAMyZAMzMAMz/AP8AAP8zAP9mAP+ZAP/MAP//MwAAMwAzMwBmMwCZMwDMMwD/MzMAMzMzMzNmMzOZMzPMMzP/M2YAM2YzM2ZmM2aZM2bMM2b/M5kAM5kzM5lmM5mZM5nMM5n/M8wAM8wzM8xmM8yZM8zMM8z/M/8AM/8zM/9mM/+ZM//MM///ZgAAZgAzZgBmZgCZZgDMZgD/ZjMAZjMzZjNmZjOZZjPMZjP/ZmYAZmYzZmZmZmaZZmbMZmb/ZpkAZpkzZplmZpmZZpnMZpn/ZswAZswzZsxmZsyZZszMZsz/Zv8AZv8zZv9mZv+ZZv/MZv//mQAAmQAzmQBmmQCZmQDMmQD/mTMAmTMzmTNmmTOZmTPMmTP/mWYAmWYzmWZmmWaZmWbMmWb/mZkAmZkzmZlmmZmZmZnMmZn/mcwAmcwzmcxmmcyZmczMmcz/mf8Amf8zmf9mmf+Zmf/Mmf//zAAAzAAzzABmzACZzADMzAD/zDMAzDMzzDNmzDOZzDPMzDP/zGYAzGYzzGZmzGaZzGbMzGb/zJkAzJkzzJlmzJmZzJnMzJn/zMwAzMwzzMxmzMyZzMzMzMz/zP8AzP8zzP9mzP+ZzP/MzP///wAA/wAz/wBm/wCZ/wDM/wD//zMA/zMz/zNm/zOZ/zPM/zP//2YA/2Yz/2Zm/2aZ/2bM/2b//5kA/5kz/5lm/5mZ/5nM/5n//8wA/8wz/8xm/8yZ/8zM/8z///8A//8z//9m//+Z///M////eyQG1gAAAAF0Uk5TAEDm2GYAAAA/SURBVBjTXcjBEQAwBAVRqSZVqjS9mCCIb2/7SEYkB+IBvBH0Aew7+Dd4/yG+ID+hPoAXAbR36G8Ar4BPMv4CC5KBJwNtIOoAAAAASUVORK5CYII="); }\n</style>'; legend += '</tr></table>'; $('head').append(style); $('div.contest-name').parent().after(legend); if(navigator.userAgent.indexOf('Opera') != -1) { // Yes, I know this is ugly solution... style = '<style>\n'; for(var i = 0; i < spec.length; ++i) { var tw = $('td.'+ spec[i][1]).css('border-top-width'); var lw = $('td.'+ spec[i][1]).css('border-left-width'); var pos = tw + ' ' + lw; style += 'td.' + spec[i][1] + ' { background-position: ' + pos + '; }\n'; } style += '</style>'; $('head').append(style); } for(var i = 0; i < spec.length; ++i) { var key = 'colorize_standings_cf_' + spec[i][1]; var names = toarray(spec[i][0]); for(var j = 0; j < names.length; ++j) { $('td[title$="'+ names[j] + '"]').addClass(spec[i][1]); } if(Codeforces.getCookie(key) == 1) { $('td.'+ spec[i][1]).addClass('highlight-by-lang'); } $('td.'+ spec[i][1]).click((function(k, c) { return function() { if(Codeforces.getCookie(k) == 1) { document.cookie = k + '=0; expires=Mon, 4-Jun-2012 00:00:00 GMT; path=/'; } else { document.cookie = k + '=1; path=/'; } $(c).toggleClass('highlight-by-lang'); }; })(key, 'td.'+ spec[i][1]) ); } } /////////////////////////////////////////////////////////////////////// // // The following part is executed in userjs scope. // script = document.createElement('script'); script.setAttribute("type", "application/javascript"); script.textContent = '$(document).ready(' + colorize + ');'; document.body.appendChild(script); document.body.removeChild(script);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址