加一些代码,让vjudge简洁
Stylus
@-moz-document url-prefix("https://cn.vjudge.net/"), url-prefix("https://vjudge.net/") {
dd {
font-family: "Noto Serif", "Noto Serif CJK SC Medium", serif;
background-color: rgba(255, 255, 255, 0.5) !important;
box-shadow: none;
} dd pre {
font-family: "DejaVu Sans Mono", serif;
}
.fa-refresh.fa-spin {
-webkit-animation: fa-spin 1s infinite;
animation: fa-spin 1s infinite;
}
.fa-spin, .fa-pulse {
animation: none;
}
.fa-2x, .fa-3x, .fa-4x, .fa-5x {
font-size: 1em !important;
}
#problem_discuss {
display: none;
}
.navbar{
z-index: 999;
width: 100%;
top: 0;
box-shadow: 0 2px 10px 0 rgba(34,36,38,.15);
border-radius: 0!important;
background-color: white !important;
padding: 0 2rem;
}
.navbar-brand{
color: blue!important;
margin: 0!important;
}
.nav-item {
margin: 0!important;
}
.nav-item>a, .navbar-brand{
color: black!important;
padding: 1em 1em !important;
font-size: 1rem;
}
.nav-item.active {
background-color: rgba(0,0,0,0.05);
}
.nav-item:hover,.nav-item:hover>input{
background-color: #f5f5f5;
}
.dropdown-menu {
border-radius: 0;
margin: 0;
}
.navbar-brand>img {
position: absolute;
left: 1em;
}
body {
background: none;
}
#code-content, code.hljs {
background: none!important;
border: 1px black dotted!important;
}
.hljs, .hljs-section, .hljs-title {
color:black;
}
}
TamperMonkey
// ==UserScript==
// @name vjudge jumper
// @namespace none
// @version 0.1
// @description jump
// @author sahdsg
// @match https://cn.vjudge.net/*
// @match https://vjudge.net/*
// @grant none
// ==/UserScript== (function() {
'use strict';
function funcs() {
var k =$("input.nav-item").val();
if(k.indexOf("!")==0) {
window.location.href='/problem#OJId=All&probNum=&title='+k.slice(1)+'&source=&category=all';
} else {
k = k.toLowerCase();
var t={
"HYSBZ":["bzoj","hysbz"],
"CodeForces":["cf", "codeforces"],
"Gym":["gym"],
"51Nod":["51nod"],
"ZOJ":["zoj"],
"HDU":["hdu"],
"UVALive":["uvalive", "la"],
"UVA":["uva"],
"51Nod":["51nod"],
"HIT":["hit"],
"SPOJ":["spoj"],
"POJ":["poj"]
};
for(var o in t) {
for(var z in t[o]) {
var prefix = t[o][z];
if(k.indexOf(prefix)==0) {
window.location.href='/problem/'+o+'-'+k.slice(prefix.length).replace(/-/g,"").toUpperCase();
return;
}
}
}
alert("unknown");
}
}
$(".nav.navbar-nav").append('<li class="nav-item" style="padding: .25em 1em !important;"><input class="nav-item" style="border: none;height: 3em;"></li>');
if(window.location.href.indexOf("UVA-")>0) {
var k=window.location.href.substr(window.location.href.indexOf("UVA-")+4); $("#prob-operation>.container").append('<div class="row"><div class="col-xs-12"><a href="https://uva.onlinejudge.org/external/'+k.slice(0,-2)+'/'+k+'.pdf" target="_blank" class="btn btn-secondary">PDF</a></div></div>'); }
$("input.nav-item").keypress(function (e) {if (e.which == 13) {funcs()}});
})();
// ==UserScript==
// @name vjudge Timer
// @namespace none
// @version 1.0
// @description vjudge计时器
// @author sahdsg
// @match https://cn.vjudge.net/problem/*
// @match https://vjudge.net/problem/*
// @grant none
// ==/UserScript== (function(){
var odate = new Date();
var timeron = true; function getTime() {
var date = new Date()-odate;
var second = Math.floor(date/1000)%60;
if(second<10) {
second="0"+second;
}
var minute = Math.floor(date/60000)%60;
if(minute<10) {
minute="0"+minute;
}
var hour = Math.floor(date/3600000)%60;
if(hour<10) {
hour="0"+hour;
}
var str=hour+':'+minute+':'+second;
var mtimer = document.getElementById("timerid");
mtimer.innerHTML=str;
} function changeTimer() {
if(timeron) {
getTime();
clearInterval(terval);
timeron = false;
$("#timerop").html("continue");
$("#problem_discuss").slideDown();
} else {
getTime();
terval = setInterval(getTime,1000);
timeron=true;
$("#timerop").html("pause");
$("#problem_discuss").slideUp();
}
}
function resetTimer() {
odate = new Date();var mtimer = document.getElementById("timerid");mtimer.innerHTML='00:00:00';
}
$("#prob-left-panel").prepend('<div class="alert row alert-danger"><table width="100%"><tbody><tr><td>Time used:</td><td style="text-align: right" width="50%" id="timerid">00:00:00</td></tr><tr><td><button class="btn-danger" id="timereset">reset</button></td><td style="text-align: right"><button class="btn-danger" id="timerop">pause</button></td></tr></tbody></table></div>');
$("#timerop").click(function(){changeTimer();});$("#timereset").click(function(){resetTimer();});
var terval = setInterval(getTime,1000);
$("#problem_discuss").hide();
timeron=true;
})();