Autoselect Statistics in Noteflight

Automatically toggles the statistics option on at noteflight.com.

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name         Autoselect Statistics in Noteflight
// @namespace    Unseeable's Noteflight Tools
// @version      1.2.0
// @license      GPL-3.0-or-later
// @description  Automatically toggles the statistics option on at noteflight.com.
// @description:es Activa automáticamente la opción de estadísticas en noteflight.com.
// @description:fr Active automatiquement l'option statistiques sur noteflight.com.
// @description:de Schaltet die Statistikoption auf noteflight.com automatisch ein.
// @author       Colton Stone
// @tag          productivity
// @tag          utilities
// @match        *://noteflight.com/scores/view/*
// @icon         https://www.google.com/s2/favicons?sz=32&domain=noteflight.com
// @grant        unsafeWindow
// ==/UserScript==

(function() {
  var uwin = unsafeWindow;
  console.log(uwin);
  function checkNested(obj, args) {
    for (var i = 0; i < args.length; i++) {
      if (!obj || !obj.hasOwnProperty(args[i])) {
        return false;
      }
      obj = obj[args[i]];
    }
    return true;
  }
  function waitForGlobal(keyPath, callback) {
    var args = keyPath.split('.');
    if (checkNested(uwin, args)) {
      callback();
    } else {
      setTimeout(function() {
        waitForGlobal(keyPath, callback);
      }, 100);
    }
  }
  waitForGlobal("nfeditor", () => {
    uwin.nfeditor.targetElement = document.getElementById("r3app");
    const targetElement = uwin.nfeditor.targetElement;
    const keyPressEvent = new KeyboardEvent("keypress", {
      key: "t" || "T",
      altKey: true,
    });
    targetElement.dispatchEvent(keyPressEvent);
  });
})();