简易flash播放器模拟器(在线版)

将网页中的flash内容替换为ruffle模拟器进行播放,可能对某些网站无效

// ==UserScript==
// @name         简易flash播放器模拟器(在线版)
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  将网页中的flash内容替换为ruffle模拟器进行播放,可能对某些网站无效
// @author       梅塔的长名字
// @icon         data:image/jpeg;base64,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VJ0VGI0hQFFBdpzdaaMpMIr5N2JoCYPXQlLU18C7zm6U0UXCou7mrHRzX5jNfmM1+YzX5jNfmM1+YXaLg5wqfQJtH0uE49aegTaLgTUk+gTaLfNai09Cu0W92xN6Fdot0xqL6JNot0xqnQAr0jKaMpoymjKaMpoymjKaMpoymhegFtmNQaMpfN3ZsR0AKmkAUF2mt40ZS+bs7YRogVNIAoLqzYRBNTXRlDzdSwEM2LRUVNI7XRnCwSTpS1oLmWA8w0zjTRam4s+E9ozTxBdudQCpgClxm7tZFoLlM3aqJTqbnM3aiJTqbpM3aQFYVKXWZu0RLPmAALtM7/EAT4gS+YCgXiZuih4jA3EZZgSxGEcfcs//xAAlEQEAAQQBAwQDAQAAAAAAAAABEQAwMVBBQFFhECAhYHBxkLH/2gAIAQIBAT8Q/ILvT1fvp9APyAfQD7YNxR3NA8UBwbuRz8FcJ7/9tsmG/Cm+XG/uffrld/SsuN/SKCLahlp9KQRGxiWlDNI42nNaOirl2glCojf6AmzE2wlCysE0lZ2wgmzM+DbBKFHxYiINuflbKlduIFnxV4q8deKvFXiqEuwEjoMn72Ay9Bk2AQHQZP3rxL0OTXiDocmuMvRZNcYLCwWqqqnLrTLZXG3EFhYpZ23NZXG2kbKwUs7UJoILL42oTQAWVg2omgC05dmC0d9uDYkqjRcFilnY43pNljd4Nnjck2mNpYpTtcbKeKWdtj7lCmqruMKk71DvUanUvf8ApZ//xAApEQEAAQMEAgICAgIDAAAAAAABEQAxcRAwQFEhUEFhILGRoWBwgdHh/9oACAEDAQE/EP8AAoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoemoen8C5mgAAIDWampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqamp1QREkabudS5k963ydS5k963cupcye9buXUuZPet3LqXMnvW7l1LmT3rdy6lzPvW7l1Lmfet3LqXM+tkqTsqTvebuXUuZ9TdDgr/wB5qzAxSl/5Kk+Wn7283cupcz6eVPJV9gdH5/vbzdy6lzPpRJWDupImDo4+budS5n0hS8tEFUrtfvbzdzqXM+jhlMu5+9vN3Opcz6KKVy7v7G83c6lzPoY03lvfsbzdzqXM+gYvz8FIlN9tOEaReDNHb+BUEJbbzdzqXM89QKsBTK/BY2moE1HKl6oDwCDgt3Opczz/AIrnacm3agoEHDbudS5nnEipKVuuyzlZQAAIDiN3OpczzvC3wbKfWvQAAIDit3OpczzQ/gM0sq97CiLtCQ4zdzqXM82Y9b7PkBxxu51LmeYblgpKV+XY8+5A3c6lzPMiHfZIH88hu51LmeZPvg8GwKInw/m2221RunCbudS5nlzr5seiZu51LmeXKDl4H9PhN3OpczylAXqm7x4H9PhN3Opczysw4P8AX4TdzqXM8qYfg8HB/r8Ju51LmeTNdvg4X9HhN3OpczyfBljwbCIBevpK+kr6SvpK+kr6SvpK+kr6SgjbgHCbudS5yPk/L4Nm88HMbudS5x1AVsUyv8bCALrRAHwcxu51LnH+G52bzwc1u51LnGP7G2ygC60RBYOa3c6lzigi07LZhl4Oc3c6lziEytIpf+DZUqAACxzm7nUucMjt6p2V2vJN3nt3Opc4NxhSvjwO9vzSeD0DdzqXN7xnlT8IKT/03EIKIgegbudS5vWMbw+a7f0LdzqXN61jd+4eibudS5vWsbgQuejbudS5vWsbSKAojL5fSN3Opc3v1bLPPgUBAR6Vu51Lm9Zx+VmovyqxHp27nUub30fFHeoSh8iFfJWg7D1TdzqXN6PXt3Opc963c6lz3rd1Pet3U963dT3rd1Pet3U963dT3r+B7x/0F//Z
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const ruffleScriptSrc = 'https://unpkg.com/@ruffle-rs/ruffle';

    const addRufflePlayer = (container, width, height, swfSrc) => {
        const ruffleDiv = document.createElement('div');
        ruffleDiv.setAttribute('data-ruffle', ruffleScriptSrc);
        ruffleDiv.style.width = width;
        ruffleDiv.style.height = height;

        container.appendChild(ruffleDiv);

        // Ensure Ruffle is initialized correctly
        if (typeof window.RufflePlayer !== 'undefined') {
            const ruffle = window.RufflePlayer.newest();
            const player = ruffle.createPlayer();
            player.style.width = width;
            player.style.height = height;
            player.load(swfSrc);
            container.appendChild(player);
        } else {
            console.error('Ruffle Player not defined yet.');
        }
    };

    const replaceFlashWithRuffle = (element) => {
        const src = element.getAttribute('src');
        if (src && src.endsWith('.swf')) {
            const container = element.parentNode;
            const width = element.getAttribute('width') || '100%';
            const height = element.getAttribute('height') || '100%';

            // Remove the old Flash element
            element.parentNode.removeChild(element);

            // Add the Ruffle player
            addRufflePlayer(container, width, height, src);
        }
    };

    const loadRuffleScript = () => {
        const script = document.createElement('script');
        script.src = ruffleScriptSrc;
        script.onload = () => {
            console.log('Ruffle script loaded.');

            // Replace Flash content after Ruffle script has loaded
            const elementsToCheck = ['object', 'embed', 'iframe'];
            elementsToCheck.forEach(tagName => {
                const elements = document.getElementsByTagName(tagName);
                for (let i = 0; i < elements.length; i++) {
                    replaceFlashWithRuffle(elements[i]);
                }
            });

            // MutationObserver to handle dynamic content
            const observer = new MutationObserver(() => {
                elementsToCheck.forEach(tagName => {
                    const elements = document.getElementsByTagName(tagName);
                    for (let i = 0; i < elements.length; i++) {
                        replaceFlashWithRuffle(elements[i]);
                    }
                });
            });

            // Configuration of the observer:
            const config = { childList: true, subtree: true };

            // Start observing the document with the configured parameters
            observer.observe(document.body, config);

            // Optionally, stop observing when done
            // observer.disconnect();
        };
        script.onerror = () => {
            console.error('Failed to load Ruffle script.');
        };
        document.head.appendChild(script);
    };

    // Load Ruffle script first
    loadRuffleScript();
})();