Youtube watched hider

Hide already watched (progress bar at 100%) video on user's, channel's and subscriptions' pages

当前为 2018-08-21 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         Youtube watched hider
// @namespace    http://joshuaarus.fr
// @version      0.6
// @description  Hide already watched (progress bar at 100%) video on user's, channel's and subscriptions' pages
// @author       Arus Joshua
// @match        https://www.youtube.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // CONSTANTS

    var IMG_GRAY = "data:image/png;base64,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";
    var IMG_WHITE = "data:image/png;base64,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";
    var IMG_RED = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTCtCgrAAAAE6ElEQVR4Xu2dQXLTMBhGs2ySZtEZd9Ftp+UiWXNGbsGSW3AFhm4owwy0ocyU73elNnHk2o5kO7Hem3lAYll2kg/9QnbJDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmxvNsVsg1Rlu4t/R0sRdReVFBv11ff727vf3xno+LxZPaPmOcm7Ozf3c3N/fV99c+A20Pfj5y3DDaCdiJ+KDYi9Dj4AvE09H+UlfCN0zQ7EA/P3z49LBabfzJ4HTdzOdPvYbMOrXOf11cfLcDYn66zz5dwKyj31dXn/0BMG9dFuLCZR0QKqwaHS7tbENfsHPM3rWLSTe0Y6G6elfpDLHUzbm6jVq2AyUQm+xcEtWYEohtbVcS1dBKIMsK2MrWJVGNGK2wq82jlltpDe2MGLRx1LKNXPfDA60ftew6YGAHxEat0rkY7aKNBReX8VAfl8u/+n2/HOpJJu0Y6345ZNKOsQbLod3gFWqM2FbLkIvTC3qysJu6qg0Ru+hWFN7mWXrA/ApT+TbPYn6FqdyZZzG/wlS+zrP0oHg4P7c1iGBDxC66LBXMr7AP11kE689ySakf1jyCJT9yR+ygZhMse438bORwrnNZanhdW9GfCVjPlksOmSw17F0c1XPlfxfgrsqH9sEDLZcc9Mt9aOPErL0JTdv4iaTE2l/WWSZ3jNYGy9B2ymNi7U0NbpiY7wbLo3aUx0QSrABqT3mMlGDVoH0ojxESrAa0L+XxAAlWS9QH5bGDBKsD6ofy2FKCdQDqj/LYIMGKQP1SHmskWJGob8pjQIKVCB2D8rglwUqMjkV5lASrB3S87MsjweoRHTfb8kiwBkDHz648EqyB0DlkVR4J1sDoXMryOPWf5SRYI6FzmnR5JFgjovOabHkkWEeAzm9y5ZFgHRE6z8mUR4J1ROg8CdaJSSkcWII1IjovJu8n7tEFS+fEcsMEPJpg6VxYIJ2QowdL58AlnQk6arB0fC5CT9RRgqXjZlH2QhKsHtDxuNEv9OQEHSxYOlZ2ZS8kwUqEjpFt2QtJsCJR39mXvZAEKwL1S9mrkWAdgPpjlGqQYHVA/RColhKslqgPyl4HCVYD2pdR6gAJVg3ah0BFSLACqD1lL1KCtYXaMUolki8QENpOoBLLV55Q9pJrl7Wy/pIme55RKr3llzTl9rVyhh4zSvVo+bVy+kMWX4TpA2V3IPDfOfZuPl/dKyl7w5lHsB4uL7+EnsfezGbEwmEtg1Vw1yOm0mWpKP+VlMmSAw5gudTgyWTJAQewXGrw6AnmWZjKtzVDPSg28/lTpQFiJ12GXuZXHuZZGOvO/MrDPAtj3ZlfebSBeRbGun8XiZ4sHlarTaUhYitddnbnVx67QFvdAbGNlh0Xo33UoMjkjlJMqMtMeLTyMInHrgYn7VXUkEk8dnV/0l5FjQruW8K2uqy8XwY9asiohW1tHq08asw94dioy0i70cpjO1ASsc5OJbCKdqQkYp3tS2AV7UxJxD0PKoFVrAPChd4kofJYR5Ifn8pY99nb1ChNqLaxTq1zW2nlxsA8tIvL7hpy+kCFsAPJMmR2gxfXGE9f+wzts3SX9Wx06meE6oKdwNbJ7OjDV+fjYsHoF6G9f6H3ddtKWOocN0SpsRdUeYHYzWkFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABms9l/iFivcr0NvBMAAAAASUVORK5CYII=";

    var IMG_TO_UPDATE = null;
    var COOKIE_NAME = "";
    var HIDE = false;
    var CURRENT_URL = null;
    var CURRENT_PAGE = null;
    var PAGES = [
        {
            regex: /https:\/\/www\.youtube\.com\/(?:user|channel)\/([^\/]*)(\/.*)?/g,
            displayStyle: "inline-block",
            querySelector: "ytd-grid-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/feed\/history/g,
            displayStyle: "flex",
            cookieName: "history",
            querySelector: "ytd-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/feed\/trending/g,
            displayStyle: "block",
            cookieName: "trending",
            querySelector: "ytd-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/feed\/subscriptions/g,
            displayStyle: "inline-block",
            cookieName: "subscriptions",
            querySelector: "ytd-grid-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/?$/g,
            displayStyle: "inline-block",
            cookieName: "home",
            querySelector: "ytd-grid-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/playlist\?list=(.*)/g,
            displayStyle: "flex",
            querySelector: "ytd-playlist-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/results\?search_query=(.*)/g,
            displayStyle: "bloc",
            querySelector: "ytd-video-renderer"
        },
        {
            regex: /https:\/\/www\.youtube\.com\/watch\?.*/g,
            displayStyle: "inline-block",
            cookieName: "watch",
            querySelector: "ytd-compact-video-renderer"
        }
    ];



    // FUNCTIONS

    var setCookie = function(cvalue) {
        var d = new Date();
        d.setTime(d.getTime() + (60 * 24 * 60 * 60 * 1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = COOKIE_NAME + "=" + cvalue + ";" + expires + ";path=/";
    }

    var getCookie = function() {
        var name = COOKIE_NAME + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) === 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }

    var isTheaterMode = function(){
        var masthead = document.querySelector("ytd-masthead");
        var res = masthead.hasAttribute("dark");
        return res;
    }

    var getButtonIcon = function() {
        return HIDE ? IMG_RED : (isTheaterMode() ? IMG_WHITE : IMG_GRAY);
    }

    var displayOrHide = function() {
        if (CURRENT_PAGE === null) {
            return;
        }

        document.querySelectorAll(CURRENT_PAGE.querySelector).forEach(function(element){
            var progressBar = element.getElementsByClassName("ytd-thumbnail-overlay-resume-playback-renderer");
            if (progressBar.length > 0)
            {
                var avancement = progressBar[0].style.width;
                if (HIDE && avancement == "100%")
                {
                    element.style.display = "none";
                } else {
                    element.style.display = CURRENT_PAGE.displayStyle;
                }
            }
        });
    };

    var addButton = function() {
        var img = document.createElement('img');
        img.id = "youtubeWatchedHiderImg";
        img.src = getButtonIcon();
        img.width = "20";
        img.height = "20";
        IMG_TO_UPDATE = img;

        var ytIcon = document.createElement("yt-icon");
        ytIcon.classList.add("guide-icon");
        ytIcon.classList.add("style-scope");
        ytIcon.classList.add("ytd-guide-entry-renderer");

        var ytIconButton = document.createElement("yt-icon-button");
        ytIconButton.classList.add("style-scope");
        ytIconButton.classList.add("ytd-topbar-menu-button-renderer");
        ytIconButton.classList.add("style-default");

        var aImg = document.createElement("a");
        aImg.href = "";
        aImg.onclick = function() {
            HIDE = !HIDE;
            setCookie(HIDE ? "true" : "false");
            displayOrHide();
            img.src = getButtonIcon();
            return false;
        }

        var divHide = document.createElement("ytd-topbar-menu-button-renderer");
        divHide.id = "youtubeWatchedHiderDiv";
        divHide.classList.add("style-scope");
        divHide.classList.add("ytd-masthead");
        divHide.classList.add("style-default");

        var buttonBar = document.getElementById("buttons");

        buttonBar.insertBefore(divHide, buttonBar.firstChild);
        divHide.querySelector("div").appendChild(aImg);
        aImg.appendChild(ytIconButton);
        ytIconButton.querySelector("button").appendChild(ytIcon);
        ytIcon.appendChild(img);
    };

    var init = function() {
        CURRENT_URL = window.location.href;
        CURRENT_PAGE = null;
        PAGES.some(function(page) {
            if (CURRENT_URL.match(page.regex)) {
                CURRENT_PAGE = page;
                return true;
            }
        });

        if (CURRENT_PAGE === null) {
            return;
        }

        COOKIE_NAME = "youtubeWatchedHiderCookie_" + (CURRENT_PAGE.cookieName !== undefined ? CURRENT_PAGE.cookieName : CURRENT_PAGE.regex.exec(CURRENT_URL)[1]);
        HIDE = getCookie() == "true";

        addButton();
    }


    // FUNCTION TO HANDLE THE CHANGE IN THEATER MODE IN WATCH PAGE

    setTimeout(function(){
        // Select the node that will be observed for mutations
        var targetNode = document.querySelector("ytd-masthead");
        // Options for the observer (which mutations to observe)
        var config = { attributes: true };

        // Callback function to execute when mutations are observed
        var callback = function(mutationsList) {
            IMG_TO_UPDATE.src = getButtonIcon();
        };

        // Create an observer instance linked to the callback function
        var observer = new MutationObserver(callback);

        // Start observing the target node for configured mutations
        observer.observe(targetNode, config);
    }, 1000);


	// AUTOMATIC UPDATE OF THE PAGE

    setInterval(function(){
        if (document.getElementById("youtubeWatchedHiderImg") == null) {
            init();
        }
        displayOrHide();
    }, 1000);

})();