Greasy Fork

Duolingo Blur

Blur the text unless space is held

当前为 2025-05-22 提交的版本,查看 最新版本

// ==UserScript==
// @name         Duolingo Blur
// @description  Blur the text unless space is held
// @namespace    http://tampermonkey.net/
// @version      1.0
// @author       You
// @match        https://www.duolingo.com/*
// @license      MIT
// ==/UserScript==

const duoBlurClass = 'duo-blur'

const style = document.createElement('style');
// ._1ELE3.XxgPa, .duo-blur ._2IGwo.XxgPa
style.textContent = `
    .duo-blur .XxgPa {
        filter: blur(4px);
    }
`;
document.head.appendChild(style);
document.body.classList.add(duoBlurClass)

function setBlur(enabled) {
    if (enabled && !document.body.classList.contains(duoBlurClass)) {
        document.body.classList.add(duoBlurClass);
    } else if (!enabled && document.body.classList.contains(duoBlurClass)) {
        document.body.classList.remove(duoBlurClass);
    }
}

let hideBlurOverride = false;

document.addEventListener('keydown', e => {
    if (e.key === 'Shift') {
        setBlur(false);
        hideBlurOverride = true;
    }
});
document.addEventListener('keyup', e => {
    if (e.key === 'Shift') {
        setBlur(true);
        hideBlurOverride = false;
    }
});

function hasSpeakerButton() {
    return !!document.getElementsByClassName('_1OCYa').length
}

function onTimer() {
    if (hideBlurOverride) return;

    setBlur(hasSpeakerButton());
}

setInterval(onTimer, 100)