Greasy Fork is available in English.

Send to VJudge

Get code submitted to other task sites and send it to VJudge

Skript installieren?
Vom Ersteller vorgeschlagenes Skript

Ihnen könnte auch MENDO.MK Enhancement gefallen.

Skript installieren
  1. // ==UserScript==
  2. // @name Send to VJudge
  3. // @namespace -
  4. // @version 5
  5. // @description Get code submitted to other task sites and send it to VJudge
  6. // @author Plantt
  7. // @match https://open.kattis.com/problems/*
  8. // @match https://open.kattis.com/contests/*/problems/*
  9. // @match https://cses.fi/problemset/*/*
  10. // @match https://oj.uz/problem/*
  11. // @match https://www.eolymp.com/*/problems/*
  12. // @match https://codeforces.com/*/problem/*
  13. // @match https://onlinejudge.org/external/*/*.pdf
  14. // @icon https://www.google.com/s2/favicons?sz=64&domain=vjudge.net
  15. // @grant none
  16. // @license Unlicense
  17. // ==/UserScript==
  18.  
  19. window.addEventListener("load", function() {
  20. var btn;
  21. if (document.URL.includes("https://open.kattis.com")) {
  22. btn = document.createElement("a");
  23. btn.innerText = "Send to VJudge";
  24. btn.className = "tab-nav-item tab-nav-js";
  25. btn.onclick = () => {
  26. window.open("https://vjudge.net/problem/kattis-" + document.URL.substr(document.URL.lastIndexOf("/") + 1), "_blank");
  27. };
  28. document.querySelector("#edit-and-submit-tab > div > div.strip-item-plain > nav").appendChild(btn);
  29. }
  30. else if (document.URL.includes("https://cses.fi")) {
  31. btn = document.createElement("li");
  32. btn.innerHTML = `<a href="//vjudge.net/problem/cses-${document.URL.substr(document.URL.lastIndexOf("/") + 1)}" target="_blank">Send to VJudge</a>`;
  33. document.querySelector("body > div.skeleton > div.navigation > div.title-block > ul").appendChild(btn);
  34. }
  35. else if (document.URL.includes("https://oj.uz")) {
  36. btn = document.createElement("li");
  37. btn.innerHTML = `<a href="https://vjudge.net/problem/OJUZ-${document.URL.substr(document.URL.lastIndexOf("/") + 1)}" target="_blank">Send to VJudge</a>`;
  38. document.querySelector("#content > div > div > div.col-lg-9 > ul").appendChild(btn);
  39. }
  40. else if (document.URL.includes("https://www.eolymp.com")) {
  41. btn = document.createElement("a");
  42. btn.href = `//vjudge.net/problem/EOlymp-${document.URL.substr(document.URL.lastIndexOf("/") + 1)}`;
  43. btn.className = "eo-tabs __tab";
  44. btn.target = "_blank";
  45. btn.innerText = "Send to VJudge";
  46. document.querySelector("body > main > div.eo-container > div.eo-toolbar.eo-toolbar_white > nav").appendChild(btn);
  47. }
  48. else if (document.URL.includes("https://codeforces.com")) {
  49. btn = document.createElement("li");
  50. let match = document.URL.match(/https:\/\/codeforces\.com\/.+?\/problem\/(\d+?)\/(\w+?)/);
  51. btn.innerHTML = `<a href="//vjudge.net/problem/CodeForces-${match[1]}${match[2]}" target="_blank">Send to VJudge</a>`;
  52. document.querySelector("#pageContent > div.second-level-menu > ul.second-level-menu-list").appendChild(btn);
  53. }
  54. else if (document.URL.includes("https://onlinejudge.org")) {
  55. btn = document.createElement("a");
  56. btn.href = `//vjudge.net/problem/UVA-${document.URL.substr(document.URL.lastIndexOf("/") + 1)}`;
  57. btn.href = btn.href.substr(0, btn.href.length - 4);
  58. btn.innerHTML = "<button>Send to VJudge</button>";
  59. btn.style.position = "fixed";
  60. btn.style.top = btn.style.left = 0;
  61. document.body.appendChild(btn);
  62. }
  63. console.log("Send to VJudge button:", btn);
  64. });