leetcode-hide-locked

hide locked problems in LeetCode

  1. /* eslint-env greasemonkey, browser */
  2. // ==UserScript==
  3. // @name leetcode-hide-locked
  4. // @namespace weibo.com/flowmemo
  5. // @version 0.1.4
  6. // @description hide locked problems in LeetCode
  7. // @author flowmemo
  8. // @match https://leetcode.com/problemset/*
  9. // @grant none
  10. // @license MIT
  11. // @supportURL https://github.com/flowmemo/leetcode-hide-locked
  12. // ==/UserScript==
  13.  
  14. ;(function () {
  15. 'use strict'
  16. function removeLocked () {
  17. const all = document.querySelectorAll('tbody.reactable-data tr')
  18. Array.prototype.forEach.call(all, tr => { tr.style.display = '' })
  19. const locked = document.querySelectorAll('tbody.reactable-data .fa-lock')
  20. Array.prototype.forEach.call(locked, item => {
  21. const tr = item.parentElement.parentElement.parentElement
  22. if (tr.tagName === 'TR') tr.style.display = 'none'
  23. })
  24. }
  25. const problemList = document.querySelector('div[data-reactroot]')
  26. const observer = new MutationObserver(removeLocked)
  27. observer.observe(problemList, { childList: true, subtree: true })
  28. removeLocked()
  29. })()