Squeaky DGG Chat

Adds a squeaky sound when someone posts a message in DGG Chat. For more scripts see https://yunidev-uk.github.io/userscripts/

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

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

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name            Squeaky DGG Chat
// @namespace       yuniDev.squeaky
// @version         2024-12-21
// @description     Adds a squeaky sound when someone posts a message in DGG Chat. For more scripts see https://yunidev-uk.github.io/userscripts/
// @author          yuniDev
// @match           https://www.destiny.gg/embed/chat*
// @icon            data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @license         MIT
// ==/UserScript==

(function() {
    'use strict';

    const volume = 0.5;
    const maxPlayingAtOnce = 4;
    const base64Clip = "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ABBUhiSJISgS//uUZPgC5alQSMMZTyAxJ0RBACnCTij1JWel80CrHV8AAJpYHYeQOqBCJzZJJRk9sza17XW1tCYk12YQKKTkZuPhMGBsAmGAHF0VL3fBhkyOUnHxcI8XrKOLR5ZWIYWj5lZKZasRul+ViJ0/7DI8yMnef+ZE5fymZOhkZWwvyMQIdLOKY4gHFBZaKDQJ2AyD4JrYwy6ZdqSHsmYAlH3QgQIN//DzVdx9TctTcjTOpnHfskPUlOkGkav9wvq3Ko1Na/dQ9ct3zOZKFzF2O/tUHLncDyxwsMueNrbmCTVUSgLAaNDgRhFHjExBTUUzLjEwMKqqqqqqqqqqqqqqqqqqqqqqqgAS1JDq7gQpAKjIFCpKFPNXim672UNLbA9LpOy70ChEJgwGwQC4gGxoiFJMZFzBOSEZGUOliFEhNHjDaBGoukqiJiU0eNkiNAXOnFUSFpk+wgRoF0kxEKSYTDo+JCcUEYgD5UiISYyfMG0CBGUOrKomXvYbQI1Fw8VFIqJR//uUZOSA8eMSxeohEHBIR2elAGyKTDEA1m8YZQErsRaAICG54WHxIKxQMDYeKkRKTGR8nJBWQEZQqRISUmMmyQnFBGUOFSIhJjJ8wTk5ARlDpYhRGTJ8wTkhGQFzhYhREpo8bJEZGQF6QlYIAAQN/iX/ll9Zppf/6aG/////6lzGUsrehkM/llml//UzhUm4HCWQBwwKyRGodOgiakpONFFHgaoNX9NqallitEyy1NX////KqVVQaun9///2iZZLTV/paP5/KVXVVw1VSVP////aallgmiq63/9VVctMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//uUZOyO9iBgPBtYSGIjDAX2BAJ/Cdwo5mekwMgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV";
    const emotes = ["widepeepoHappy"]; // Leave blank to work with every message

    const clipBlob = new Blob([Uint8Array.from(atob(base64Clip), c => c.charCodeAt(0))], { type: 'audio/mp3' });
    const clipUrl = URL.createObjectURL(clipBlob);

    const audioQueue = [];
    for (let i = 0; i < maxPlayingAtOnce; i++) {
        let sound = new Audio(clipUrl);
        sound.volume = volume;
        sound.pause();
        audioQueue.push(sound);
    }

    function playSound() {
        const sound = audioQueue[0];
        sound.pause();
        sound.currentTime = 0;
        sound.play();
        audioQueue.splice(0, 1);
        audioQueue.push(sound);
    }

    function mutationCallback(mutationsList) {
        for (const mutation of mutationsList) {
            if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
                for (const addedNode of mutation.addedNodes) {
                    if (!emotes.length) playSound();
                    for (const emote of emotes) {
                        if (addedNode.querySelector(`.emote.${emote}`)) {
                            playSound();
                            break;
                        }
                    }
                }
            }
        }
    }

    const targetElement = document.getElementById("chat-win-main").querySelector(".chat-lines");

    if (targetElement) {
        const observer = new MutationObserver(mutationCallback);
        observer.observe(targetElement, { childList: true });
    }
})();