Daimayuan Online Judge++

增强Daimayuan OJ的功能

  1. // ==UserScript==
  2. // @name Daimayuan Online Judge++
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2.0
  5. // @description 增强Daimayuan OJ的功能
  6. // @author Chen Jun
  7. // @match *://oj.daimayuan.top/*
  8. // @icon <$ICON$>
  9. // @grant none
  10. // @license MIT
  11. // @antifeature membership
  12.  
  13. // ==/UserScript==
  14. (function() {
  15. // value defines
  16. var username='YuMo';
  17. var a;
  18. // end
  19. // All styles define
  20. a=document.querySelector("head");
  21. var tmp=document.createElement("style");
  22. tmp.innerHTML="\
  23. .ac{ animation: colorful 1s linear infinite;}a.btn{ background-color: rgb(0,200,0) !important; border-color: rgb(0,200,0) !important;}.btn:hover{ color: #ffffff !important; background-color: rgb(0,170,0) !important; border-color: rgb(0,170,0) !important;}.btn:active{ background-color: rgb(0,170,0) !important; border-color: rgb(0,170,0) !important;}.btn:focus,a.page-link:focus{ box-shadow : 0 0 0 .2rem hsla(120, 100%, 63%, 0.5) !important;}a{ color: rgb(0,200,0);}.page-item>a.page-link:not(.page-item.active){ color: rgb(0,200,0);}.page-item.active>a.page-item{ color: #ffffff; background-color: rgb(0,200,0);}a:hover,.page-item:not(.page-item.active)>.page-link:hover{ color : rgb(0, 170, 0);}.card-header.bg-info{ background-color: rgb(0,200,0) !important;}.card.border-info{ border-color: rgb(0,200,0) !important;}.btn-outline-primary[type='submit']{ color: rgb(0,200,0); border-color: rgb(0,200,0);}span.uoj-username{ animation: colorful 1s linear infinite !important;}.show>.nav-link{ background-color: #00000000 !important;}@keyframes colorful { 0%{ color : hsl(0,100%,40%); } 10%{ color : hsl(36,100%,40%); } 20%{ color : hsl(72,100%,40%); } 30%{ color : hsl(108,100%,40%); } 40%{ color : hsl(144,100%,40%); } 40%{ color : hsl(180,100%,40%); } 60%{ color : hsl(216,100%,40%); } 70%{ color : hsl(252,100%,40%); } 80%{ color : hsl(288,100%,40%); } 90%{ color : hsl(324,100%,40%); } 100%{ color : hsl(360,100%,40%); }}\
  24. ";
  25. a.appendChild(tmp);
  26. // end
  27.  
  28. // Progress Bar Update
  29. a=document.querySelectorAll('.progress-bar');
  30. for (var i=0;i<a.length;i++) {
  31. let x=a[i];
  32. x.classList.add("progress-bar-striped");
  33. x.classList.add("progress-bar-animated");
  34. x.style['background-color']='rgb(0,200,0)';
  35. }
  36. // end
  37.  
  38. // Username style change (yourself)
  39. if(location.href.search('standing')!=-1){
  40. var str='a[href="http://oj.daimayuan.top/user/profile/xxx"]{animation: colorful 1s linear infinite;}';
  41. str=str.replace('xxx',username);
  42. var ss=document.createElement('style');
  43. ss.innerHTML=str;
  44. a=document.querySelector('head');
  45. a.appendChild(ss);
  46. }
  47. var str='.uoj-username:not(span,[href="http://oj.daimayuan.top/user/profile/xxx"]){color: rgb(0,200,0) !important;}';
  48. if(location.href.search('standing')==-1){
  49. str=str.replace(',[href="http://oj.daimayuan.top/user/profile/xxx"]','');
  50. }
  51. str=str.replace('xxx',username);
  52. var ss=document.createElement('style');
  53. ss.innerHTML=str;
  54. a=document.querySelector('head');
  55. a.appendChild(ss);
  56. // end
  57. // 100 -> colorful
  58. if(location.href.search('submission')!=-1){
  59. a=document.querySelectorAll(".uoj-score");
  60. for(let x of a){
  61. if(x.innerHTML=="100")
  62. x.classList.add("ac");
  63. }
  64. }
  65. a=document.querySelector('head');
  66. tmp=document.createElement("style");
  67. // end
  68. })();