// ==UserScript== // @name youtube-noscript-shim // @namespace systemreboot.net // @description Use YouTube with NoScript // @include https://www.youtube.com/* // @version 0.1 // @grant none // ==/UserScript== // Copyright (C) 2017 Arun Isaac // This program is free software: you can redistribute it and/or // modify it under the terms of the GNU General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . function toggleClasses (selector, classes) { classes.forEach(function (cls) { document.querySelector(selector).classList.toggle(cls); }); } function toggleBooleanAttributes (selector, attributes) { element = document.querySelector(selector); attributes.forEach(function (attribute) { element.setAttribute(attribute, element.getAttribute(attribute) == "true" ? "false" : "true"); }); } // Load thumbnails Array.from(document.querySelectorAll("img[data-thumb]")).forEach(function (img) { img.setAttribute("src", img.getAttribute("data-thumb")); }); // Search filters document.querySelector(".filter-button").addEventListener("click", function () { toggleClasses(".filter-button", ["yt-uix-button-toggled"]); toggleClasses(".search-header", ["yt-uix-expander-collapsed"]); toggleBooleanAttributes(".filter-button", ["aria-pressed"]); }); // Guide document.querySelector("#appbar-guide-button").addEventListener("click", function () { toggleClasses("html", ["show-guide"]); toggleBooleanAttributes("#appbar-guide-button", ["aria-expanded"]); });