Skip to content

Instantly share code, notes, and snippets.

@paolosimone
Last active March 27, 2020 14:51
Show Gist options
  • Save paolosimone/326aa12818a5c528d1c3f5a4c3c9efa0 to your computer and use it in GitHub Desktop.
Save paolosimone/326aa12818a5c528d1c3f5a4c3c9efa0 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name Leetcode "PickOne" filter
// @namespace https://leetcode.com/
// @version 0.1
// @description Apply table filters also to "PickOne" button in "Problems" section
// @author Paolo Simone
// @match https://leetcode.com/problemset/*
// @grant none
// ==/UserScript==
(function() {
let onClick = function() {
let problems = document.querySelectorAll("tbody.reactable-data > tr > td > div > a");
problems = Array.from(problems).filter(a => a.parentElement.querySelector("span i.fa-lock") == null);
let random = Math.floor(Math.random() * Math.floor(problems.length));
window.open(problems[random].href, '_blank');
}
window.addEventListener('load', function() {
let pickOneBtn = document.querySelector("div.assess-bar > div.pull-right > span.pick-one-btn > a");
pickOneBtn.removeAttribute("href");
pickOneBtn.addEventListener("click", onClick);
}, false);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment