洛谷双击跳题

仿exlg双击跳题

  1. // ==UserScript==
  2. // @name 洛谷双击跳题
  3. // @version 0.3
  4. // @description 仿exlg双击跳题
  5. // @match https://www.luogu.com.cn*
  6. // @match https://www.luogu.com.cn/*
  7. // @match *://*.gdfzoj.com*/*
  8. // @match *://*
  9. // @match *://*/*
  10. // @author MlkMathew
  11. // @license MIT
  12. // @grant none
  13. // @namespace https://gf.qytechs.cn/users/1068192
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18. var web=location.href;
  19. function number(s){
  20. let res=0;
  21. for(let i=0;i<s.length;i++)
  22. {
  23. if(s[i]<'0'||s[i]>'9'){
  24. return -1;
  25. }
  26. res=res*10+(s[i]-'0');
  27. }
  28. return res;
  29. }
  30. function letter(c){
  31. if('a'<=c&&c<='z'){
  32. return String.fromCharCode(c.charCodeAt()-97+65);
  33. }
  34. return c;
  35. }
  36. function prefix(s,pre){
  37. if(s.length<pre.length){
  38. return false;
  39. }
  40. for(let i=0;i<pre.length;i++)
  41. {
  42. if(letter(s[i])!=pre[i]){
  43. return false;
  44. }
  45. }
  46. return true;
  47. }
  48. function check(s){
  49. if(prefix(s,"P")){
  50. return (number(s.substr(1,s.length-1))>=1000);
  51. }
  52. if(web.match("luogu.com.cn")&&prefix(s,"U")&&(!prefix(s,"UVA"))&&(!prefix(s,"UOJ"))){
  53. return (number(s.substr(1,s.length-1))>0);
  54. }
  55. if(web.match("luogu.com.cn")&&prefix(s,"T")){
  56. return (number(s.substr(1,s.length-1))>=100);
  57. }
  58. if(prefix(s,"B")){
  59. return (number(s.substr(1,s.length-1))>2000);
  60. }
  61. if(prefix(s,"CF")){
  62. if(('A'<=letter(s[s.length-2])&&letter(s[s.length-2])<='Z')&&(s[s.length-1]=='1'||s[s.length-1]=='2')){
  63. return (number(s.substr(2,s.length-4))>0);
  64. }
  65. if(('A'<=letter(s[s.length-1])&&letter(s[s.length-1])<='Z')){
  66. return (number(s.substr(2,s.length-3))>0);
  67. }
  68. }
  69. if(prefix(s,"AT")){
  70. return true;
  71. }
  72. if(prefix(s,"SP")){
  73. return (number(s.substr(2,s.length-2))>0);
  74. }
  75. if(prefix(s,"UVA")){
  76. return (number(s.substr(3,s.length-3))>=100);
  77. }
  78. if(prefix(s,"LOJ")){
  79. return (number(s.substr(3,s.length-3))>0);
  80. }
  81. if(prefix(s,"QOJ")){
  82. return (number(s.substr(3,s.length-3))>0);
  83. }
  84. if(prefix(s,"UOJ")){
  85. return (number(s.substr(3,s.length-3))>0);
  86. }
  87. return false;
  88. }
  89. function dbclick()
  90. {
  91. let s="";
  92. if(window.getSelection){
  93. s=window.getSelection().toString();
  94. }
  95. else if(document.selection&&document.selection.createRange){
  96. s=document.selection.createRange().text;
  97. }
  98. while(s[s.length-1]==' ')
  99. {
  100. s=s.substr(0,s.length-1);
  101. }
  102. if(check(s)){
  103. if(prefix(s,"LOJ")){
  104. window.open("https://loj.ac/p/"+number(s.substr(3,s.length-3)));
  105. }
  106. else if(prefix(s,"QOJ")){
  107. window.open("https://qoj.ac/problem/"+number(s.substr(3,s.length-3)));
  108. }
  109. else if(prefix(s,"UOJ")){
  110. window.open("https://uoj.ac/problem/"+number(s.substr(3,s.length-3)));
  111. }
  112. else{
  113. window.open("https://www.luogu.com.cn/problem/"+s);
  114. }
  115. }
  116. }
  117. document.addEventListener('dblclick',dbclick);
  118. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址