Greasy Fork is available in English.

Choose A Word

Notifies you whenever it's your turn to draw. Notifications must be allowed.

Från och med 2020-06-26. Se den senaste versionen.

// ==UserScript==
// @name          Choose A Word
// @namespace     https://greasyfork.org/users/281093
// @match         https://sketchful.io/*
// @grant         none
// @version       1.0
// @author        Bell
// @description   Notifies you whenever it's your turn to draw. Notifications must be allowed.
// jshint esversion: 6
// ==/UserScript==

(function checkNotificationPerm() {
    if (Notification.permission === "granted") {
        console.log("Notifications allowed");
    } else if (Notification.permission !== "granted") {
        Notification.requestPermission().then(function(permission) {
            if (permission === "granted") {
                console.log("Notification ermission granted");
            } else {
                console.log("Permission denied");
            }
        });
    }
})();

const callback = function(mutationsList, observer) {
    for (let mutation of mutationsList) {
        if (mutation.addedNodes[0] && mutation.addedNodes[0].innerHTML.includes("Choose")) {
            if (!tabFocused) {
                notify();
            }
        }
    }
};

let tabFocused = true;

const playerList = document.querySelector("#gameSticky");
const observer = new MutationObserver(callback);
const config = {
    attributes: false,
    childList: true,
    subtree: true
};

observer.observe(playerList, config);

function notify() {
    if (Notification.permission === "granted") {
        let notification = new Notification("Your Turn", {
            icon: "https://sketchful.io/res/logo/pencils%20optimized.png",
            body: "Click the notification to return to the game.",
            requireInteraction: true,
        });
        notification.onclick = function() {
            window.focus();
            notification.close();
        };
    } else {
        console.log("Notifications are blocked.");
    }
}

function onBlur() {
    tabFocused = false;
}

function onFocus() {
    tabFocused = true;
}

if ( /*@cc_on!@*/ false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}