Greasy Fork is available in English.

Leetcode invisible

A script to hide Leetcode question difficultly

  1. // ==UserScript==
  2. // @name Leetcode invisible
  3. // @version 0.2
  4. // @description A script to hide Leetcode question difficultly
  5. // @author osjobs.nett
  6. // @match https://leetcode.com/*
  7. // @match https://leetcode-cn.com/*
  8. // @exclude https://leetcode-cn.com/problems/*/solution/
  9. // @exclude https://leetcode.com/problems/*/discuss/*
  10. // @grant none
  11. // @namespace https://greatest.deepsurf.us/users/555531
  12. // ==/UserScript==
  13.  
  14.  
  15. // Since Leetcode use Ajax to load content,
  16. // we have to check the label in first few seconds
  17. if (window.location.href.indexOf("problemset") > -1) {
  18. var problemsetTimer = setInterval(problemsetFunction, 2000);
  19. } else if (window.location.href.indexOf("problems") > -1) {
  20. var updateTime = 0;
  21. var problemTimer = setInterval(problemFunction, 100);
  22. }
  23.  
  24.  
  25. function problemsetFunction() {
  26. // Problems list page
  27. if(document.querySelector("span.label-warning")|| document.querySelector("span.label-success") || document.querySelector("span.label-danger") ) {
  28. var elementE = document.querySelectorAll("span.label-success");
  29. var elementM = document.querySelectorAll("span.label-warning");
  30. var elementH = document.querySelectorAll("span.label-danger");
  31. update(elementE, "label-success");
  32. update(elementM, "label-warning");
  33. update(elementH, "label-danger");
  34. };
  35.  
  36. if(document.querySelector("span.level-easy")|| document.querySelector("span.level-medium") || document.querySelector("span.level-hard") ) {
  37. var elementCE = document.querySelectorAll("span.level-easy");
  38. var elementCM = document.querySelectorAll("span.level-medium");
  39. var elementCH = document.querySelectorAll("span.level-hard");
  40. update(elementCE, "level-easy");
  41. update(elementCM, "level-medium");
  42. update(elementCH, "level-hard");
  43. }
  44. }
  45.  
  46. function problemFunction () {
  47. if (updateTime > 0) {
  48. clearInterval(problemTimer);
  49. }
  50. if(document.querySelector("div.css-1e1vffy-Tools")) {
  51. document.getElementsByClassName("css-1e1vffy-Tools")[0].style.display = "none";
  52. updateTime += 1;
  53. }
  54. if(document.querySelector("div.difficulty__ES5S")) {
  55. var similar_element = document.getElementsByClassName("difficulty__ES5S");
  56. for (var i=0; i<similar_element.length; i++) {
  57. similar_element[i].textContent = "Unknown";
  58. }
  59. }
  60. }
  61.  
  62. function update(element, classname) {
  63. for (var i=0; i < element.length; i++) {
  64. element[i].classList.remove(classname);
  65. element[i].textContent = "Unknown";
  66. }
  67. }