Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Search Gists
Sign in Sign up

Instantly share code, notes, and snippets.

@maximal
CreatedSeptember 4, 2023 17:09
    • Star(0)You must be signed in to star a gist
    • Fork(0)You must be signed in to fork a gist
    Save maximal/88d7f2bf6acee038410845873295ccc1 to your computer and use it in GitHub Desktop.
    Подсветка количества просмотров на Ютубе
    /**
    * Подсветка количества просмотров на Ютубе.
    *
    * В скрипте настраиваются пороги и цвета для двух уровней подсветки.
    * По умолчанию цвета красный и оранжевый.
    *
    * Программа следит за подгрузкой новых видео на странице и подсвечивает просмотры в них.
    *
    * Пользовательский браузерный скрипт для Дмитрия Лимонова.
    *
    *@date 2023-09-04
    *@time 18:30
    *@since 2023-09-04 Первая версия.
    *@copyright © MaximAL 2023
    *@link https://maximals.ru/
    *@link https://sijeko.ru/
    */
    (function(document){
    // Настройки
    /** Порог максимального уровня подсветки */
    constMAX_COLOR_THRESHOLD=50*1000;
    /** Порог среднего уровня подсветки (должен быть меньше `MAX_COLOR_THRESHOLD`) */
    constMIDDLE_COLOR_THRESHOLD=15*1000;
    /** Цвет максимального уровня подсветки */
    constMAX_COLOR='red';
    /** Цвет среднего уровня подсветки */
    constMIDDLE_COLOR='orange';
    /** Селектор для элементов с количеством просмотров */
    constVIEWS_SELECTOR=
    '#metadata-line .ytd-grid-video-renderer:nth-child(1),'+
    '#metadata-line .ytd-video-meta-block:nth-child(3)';
    // Вёрстка на Ютубе периодически меняется, нам останется только подобрать и поменять селекторы
    // Селекторы элементов, за изменениями которых нужно следить:
    /** Селектор основного списка видео */
    constOBSERVE_SELECTOR_1='ytd-two-column-browse-results-renderer';
    /** Селектор предлагаемых видео (сбоку) */
    constOBSERVE_SELECTOR_2='ytd-watch-next-secondary-results-renderer';
    // Поехали!
    // Подстветили
    highlightAll();
    // Следим за изменениями страницы и подсвечиваем
    constconfig={childList:true,subtree:true};
    constcallback=(mutationList,observer)=>highlightAll();
    constobserver1=newMutationObserver(callback);
    observer1.observe(document.querySelector(OBSERVE_SELECTOR_1),config);
    constobserver2=newMutationObserver(callback);
    observer2.observe(document.querySelector(OBSERVE_SELECTOR_2),config);
    //observer1.disconnect();
    //observer2.disconnect();
    functionhighlightAll(){
    console.log('Запускаем подсветку...');
    document.querySelectorAll(VIEWS_SELECTOR).forEach(function(element){
    consttext=element.textContent.replace(',','.');
    letviews=parseFloat(text);
    if(text.match(/тыс/i)){
    views*=1000;
    }elseif(text.match(/млн/i)){
    views*=1000*1000;
    }elseif(text.match(/млрд/i)){
    views*=1000*1000*1000;
    }elseif(text.match(/трлн/i)){
    views*=1000*1000*1000*1000;
    }
    if(views>MAX_COLOR_THRESHOLD){
    element.style.color=MAX_COLOR;
    console.log('Подсвечено максимально: '+views);
    }elseif(views>MIDDLE_COLOR_THRESHOLD){
    element.style.color=MIDDLE_COLOR;
    console.log('Подсвечено средне: '+views);
    }else{
    console.log('Не подсвечено: '+views);
    element.style.color='unset';
    }
    });
    }
    })(document);
    Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

    [8]ページ先頭

    ©2009-2025 Movatter.jp