NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name lichess_puzzle_fen
// @version 1
// @match *://lichess.org/training*
// @grant unsafeWindow
// @run-at document-idle
// @license MIT
// ==/UserScript==
const puzzle_div = document.getElementById("puzzle");
const fen_div = document.createElement("div");
fen_div.innerHTML =
"<label for=\"fen_rednaz\">FEN</label> <input type=\"text\" value=\"" +
(array => array[array.length-1])(unsafeWindow.lichess.puzzle.data.game.treeParts).fen +
"\" id=\"fen_rednaz\" style=\"width:455px\"/>";
const mutation_observer_configuratio = {"childList": true};
const append_div_fen = (mutation, observer) => {
observer.disconnect();
fen_div.remove();
puzzle_div.appendChild(fen_div);
observer.observe(puzzle_div, mutation_observer_configuratio);
};
const observer_puzzle = new MutationObserver(append_div_fen);
observer_puzzle.observe(puzzle_div, mutation_observer_configuratio);
append_div_fen(undefined, observer_puzzle);