Greasy Fork

Greasy Fork is available in English.

Comfort video player Mail

myaatatattata

当前为 2024-08-19 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name:ru      Комфорт Мыло 
// @name         Comfort video player Mail
// @license MIT
// @description  myaatatattata
// @description:ru тоже муататата
// @version      0.1.0
// @author       Malysh <[email protected]>
// @match        http://cloud.mail.ru/*
// @match        https://cloud.mail.ru/*
// @run-at       document-start
// @grant        none
// @namespace http://greasyfork.icu/users/1354506
// ==/UserScript==

//время для перематывания
let skeepTime = 5;
//для установки качество
let qualityVideo = '1080'; // 240, 480, 720, 1080

//увеличение интервала для перемотки
document.addEventListener('keydown', function(event) {
    
if (event.code === 'ArrowUp' || event.code === 'KeyW') {
            event.stopImmediatePropagation()
            event.preventDefault();

            skeepTime += 5;
        }
        else if (event.code === 'ArrowDown' || event.code === 'KeyS') {
            event.stopImmediatePropagation()
            event.preventDefault();
             skeepTime += 5;

        }
    else if (event.code === 'KeyR') {
            event.stopImmediatePropagation()
            event.preventDefault();
             skeepTime = 5;

        }
},true);


// перемотка видео
document.addEventListener('keydown', function(event) {
    // Получаем элемент видео на странице
     let videos = document.querySelectorAll('video');

    // Проверяем, что видео найдено
    let currentVideo = null;
        videos.forEach(video => {
            if (video.offsetParent !== null) {
                currentVideo = video;
            }
        });

    if (currentVideo) {
        // Если нажата клавиша стрелки влево

        if (event.code === 'ArrowLeft' || event.code === 'KeyA') {
            event.stopImmediatePropagation()
            event.preventDefault();

            // Перематываем видео на 5 секунд назад
            currentVideo.currentTime -= skeepTime;
        }
        // Если нажата клавиша стрелки вправо
        else if (event.code === 'ArrowRight' || event.code === 'KeyD') {
            event.stopImmediatePropagation()
            event.preventDefault();
            // Перематываем видео на 5 секунд вперед
            currentVideo.currentTime += skeepTime;
        }
    }},true);

// пауза на Space
document.addEventListener('keydown', function(event) {
    // Проверяем, что нажата клавиша 'Space'
    if (event.code === 'Space') {
        event.stopImmediatePropagation();
        event.preventDefault();

        // Находим все элементы видео на странице
     let videos = document.querySelectorAll('video');


        // Ищем активное (видимое) видео
        let currentVideo = null;
        videos.forEach(video => {
            if (video.offsetParent !== null) {
                currentVideo = video;
            }
        });

        // Если найдено активное видео, управляем его воспроизведением
        if (currentVideo) {
            if (currentVideo.paused) {
                currentVideo.play();
            } else {
                currentVideo.pause();
            }
        }
    }
}, true);


// Функция для установки качества видео


function waitForElement(selector, timeout = 10000) {
    return new Promise((resolve, reject) => {
        const interval = 100;
        const checkExist = setInterval(() => {
            const element = document.querySelector(selector);
            if (element) {
                clearInterval(checkExist);
                resolve(element);
            }
        }, interval);
        setTimeout(() => {
            clearInterval(checkExist);
            reject(new Error('Элемент не найден: ' + selector));
        }, timeout);
    });
}

async function setQuality(quality) {
    try {
        // Ожидаем загрузки кнопки настроек
        const settingsButton = await waitForElement('button[class*="vjs-menu-button vjs-menu-button-popup vjs-button"]');
        settingsButton.click();

        // Ожидаем появления меню выбора качества
        const qualityMenuItem = await waitForElement('.vjs-menu .vjs-menu-content');
        [...document.querySelectorAll('.vjs-menu-title')].find(item => item.textContent.includes('Качество') || item.textContent.includes('Quality')).click();

        // Ожидаем меню с выбором качества и устанавливаем выбранное качество
        const qualityOption = await waitForElement('.vjs-menu-item');
        [...document.querySelectorAll('.vjs-menu-item-text')].find(item => item.textContent.includes(quality)).click();

        console.log(`Качество установлено на ${quality}.`);
    } catch (error) {
        console.log('Ошибка: ' + error.message);
    }
}

// Запуск скрипта после загрузки страницы с заданным качеством
window.addEventListener('load', function() {
    setTimeout(() => setQuality(qualityVideo), 1000); // Установите здесь нужное качество, например, '240p'
});