Bet365 Goal Alert Sound (Favourites only)

Play a sound when a goal goes in for currently favourited matches or competitions

// ==UserScript==
// @name         Bet365 Goal Alert Sound (Favourites only)
// @namespace    http://tampermonkey.net/
// @version      0.3.1
// @description  Play a sound when a goal goes in for currently favourited matches or competitions
// @match        https://www.bet365.com/*
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    // Short alert sound
    const audio = new Audio("https://actions.google.com/sounds/v1/cartoon/wood_plank_flicks.ogg");

    // Check if a fixture or its parent competition is currently favourited
    function isCurrentlyFavourited(fixture) {
        if (!fixture) return false;

        // Fixture itself is explicitly favourited
        if (fixture.classList.contains("ovm-Fixture-favourite")) return true;

        // Check parent competition
        const competition = fixture.closest(".ovm-Competition");
        if (competition?.classList.contains("ovm-Competition-favourite")) return true;

        return false;
    }

    // Handler when a goal alert node is added
    function handleGoal(node) {
        const fixture = node.closest(".ovm-Fixture");
        if (!isCurrentlyFavourited(fixture)) return;

        const teamNames = [...fixture.querySelectorAll(".ovm-FixtureDetailsTwoWay_TeamName")]
            .map(el => el.textContent.trim());

        console.log("GOAL in currently favourited match:", teamNames);
        audio.play().catch(err => console.warn("Audio play failed:", err));
    }

    // Mutation observer for goal alerts
    const observer = new MutationObserver(mutations => {
        for (const mutation of mutations) {
            for (const node of mutation.addedNodes) {
                if (!(node instanceof HTMLElement)) continue;
                if (node.classList.contains("ovm-GoalEventAlert")) {
                    handleGoal(node);
                }
            }
        }
    });

    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址