Chess.com - Tilt "Preventer"

Simple tool to lock you out once you lost n number of games for the day. You have to check stat page, and n <= num of games listed on that page.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Chess.com - Tilt "Preventer"
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Simple tool to lock you out once you lost n number of games for the day. You have to check stat page, and n <= num of games listed on that page.
// @author       You
// @match        https://www.chess.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=chess.com
// @grant        GM_setValue
// @grant        GM_getValue
// @license      MIT
// ==/UserScript==

// Settings
const username = "SaberSpeed77";
const maxLosses = 3;
const warningColor = "white";
const backgroundColor = "#3a456e";
//

const curDate = new Date().toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });

function giveWarning() {
      const warning = document.createElement('p');
      warning.textContent = "It's time to take a break...";
      warning.style.color = warningColor;
      warning.style.textAlign = "center";
      warning.style.position = "center";
      warning.style.fontSize = "100px";
      const html = document.querySelector('html');
      while (html.firstChild) {
          html.removeChild(html.firstChild);
      }
      html.style.backgroundColor = backgroundColor;
      html.appendChild(warning);
}

function run() {
  if (GM_getValue("dateIssued") === curDate) {
      giveWarning();
      clearInterval(i);
      return;
  }
  var games = document.querySelectorAll(".archived-games-table-row");
  var tally = 0;
  games.forEach(function(g) {
      if (g.children[6].textContent.includes(curDate) && g.children[1].textContent.includes(username) &&
          g.children[2].querySelector(".archived-games-result").children[0]._prevClass.includes("lost")) {
          tally += 1;
      }
  })

  if (tally >= maxLosses) {
      giveWarning();
      clearInterval(i);
      GM_setValue("dateIssued", curDate);
  }
}
var i = setInterval(run, 3000);