Add hide button

Add hide button to video blocks in subscriptions feed

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         Add hide button
// @author       Rolandas Valantinas
// @description  Add hide button to video blocks in subscriptions feed
// @match        https://www.youtube.com/feed/subscriptions
// @namespace    https://greasyfork.org/users/157178
// @supportURL   https://github.com/rolandas-valantinas/gists/issues
// @version      1.2
// ==/UserScript==

// Helper functions
function getTarget(e) {
	e = e || window.event;
	return e.target || e.srcElement;
}

// Hide videos when clicked
function autoHideClicked (e) {
	var target = getTarget(e).parentNode.parentNode;

    var hideMenuButton = target.getElementsByTagName('button')[0];
    hideMenuButton.click();

    setTimeout(function() {
        // Hide the video via the youtube menus, because 1) lazy, 2) easier to update in future
        var hideMenu = document.getElementsByTagName('ytd-popup-container')[0];
        var hideButton = hideMenu.getElementsByTagName('yt-formatted-string');
        hideButton[hideButton.length-1].click();
    }, 4);
}

(function () {
    setTimeout(() => {
        var i;
        var videos = document.getElementsByTagName("ytd-grid-video-renderer");

        for (i = 0; i < videos.length; i++) {
            var link = document.createElement('div');
            link.innerHTML = '<a class="hide-button" href="javascript:;">hide</a>';

            videos[i].appendChild(link);
        }

        var hideButtons = document.getElementsByClassName('hide-button');

        for (i = 0; i < hideButtons.length; i++) {
            hideButtons[i].addEventListener('click', autoHideClicked, false);
        }
    }, 3000);

})();