Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name youtube censorship toolkit
- // @namespace censorship
- // @version 1
- // @grant none
- // @edited 10/1/2016
- // ==/UserScript==
- var users = [
- "user0",
- "user1",
- "user2"
- ];
- var nUsers = users.length;
- var channels = [
- "channel0",
- "channel1",
- "channel2"
- ];
- var nChannels = channels.length;
- var playLists = [
- "playList0",
- "playList1",
- "playList2"
- ]
- var nPlayLists = playLists.length;
- var displayUsers = false;
- var displayChannels = false;
- var displayPlayLists = false;
- var displayComments = false;
- var autoplay = false;
- var block = function(elements){
- for(var i = 0, N = elements.length; i < N; ++i){
- var e = elements[i];
- if(e.style.display != "none"){
- var node = e.parentNode;
- while(node){
- if(node.tagName.toLowerCase() === "li") break;
- node = node.parentNode;
- }
- if(node){
- node.style.display = "none";
- e.style.display = "none";
- }
- }
- }
- }
- var blockByContent = function(expressions, nExpressions, elements){
- for(var i = 0, N = elements.length; i < N; ++i){
- var e = elements[i];
- var skip = true;
- for(var j = 0; j < nExpressions; ++j){
- if(expressions[j].test(e.innerHTML) === true){
- skip = false;
- break;
- }
- }
- if(skip) continue;
- if(e.style.display != "none"){
- var node = e.parentNode;
- while(node){
- if(node.tagName.toLowerCase() === "a") break;
- node = node.parentNode;
- }
- if(node){
- node.style.display = "none";
- e.style.display = "none";
- }
- }
- }
- }
- var queries = {};
- queries.blockByUserName = {};
- queries.blockByUserName.query = "";
- queries.blockVideoWallByUserName = {};
- queries.blockVideoWallByUserName.query = "";
- queries.blockVideoWallByUserName.expressions = [];
- queries.blockVideoWallByUserName.nExpressions = 0;
- queries.blockByChannelName = {};
- queries.blockByChannelName.query = "";
- queries.blockByPlayListName = {};
- queries.blockByPlayListName.query = "";
- (function(){
- let blockByUserName = "";
- for(var i = 0, N = nUsers; i < N; ++i){
- if(i > 0){
- blockByUserName += ', ';
- }
- blockByUserName += "li a[href='/user/" + users[i] + "']";
- queries.blockVideoWallByUserName.expressions.push(new RegExp(users[i], "i"))
- }
- queries.blockByUserName.query = blockByUserName;
- queries.blockVideoWallByUserName.query = "a span[class*='ytp-videowall-still-info-author']";
- queries.blockVideoWallByUserName.nExpressions = queries.blockVideoWallByUserName.expressions.length;
- })();
- (function(){
- let blockByChannelName = "";
- for(var i = 0, N = nChannels; i < N; ++i){
- if(i > 0){
- blockByChannelName += ', ';
- }
- blockByChannelName += "li a[href='/channel/" + channels[i] + "']";
- blockByChannelName += ", li span[data-ytid='" + channels[i] + "']";
- }
- queries.blockByChannelName.query = blockByChannelName;
- })();
- (function(){
- let blockByPlayListName = "";
- for(var i = 0, N = nPlayLists; i < N; ++i){
- if(i > 0){
- blockByPlayListName += ', ';
- }
- blockByPlayListName += "li a[href='/playlist?list=" + playLists[i] + "']";
- }
- queries.blockByPlayListName.query = blockByPlayListName;
- })();
- var blockByUserName = function(){
- block(document.querySelectorAll(queries.blockByUserName.query));
- blockByContent(queries.blockVideoWallByUserName.expressions, queries.blockVideoWallByUserName.nExpressions, document.querySelectorAll(queries.blockVideoWallByUserName.query));
- }
- var blockByChannelName = function(){
- block(document.querySelectorAll(queries.blockByChannelName.query));
- }
- var blockByPlayListName = function(){
- block(document.querySelectorAll(queries.blockByPlayListName.query));
- }
- var blockComments = function(){
- var comments = document.getElementById("watch-discussion");
- if(comments){
- comments.style.display = 'none';
- }
- }
- var disableAutoplay = function(){
- var autoplay = document.getElementById("autoplay-checkbox");
- if(autoplay && autoplay.checked === true){
- autoplay.click();
- }
- }
- var execute = function(){
- if(!displayUsers) blockByUserName();
- if(!displayChannels) blockByChannelName();
- if(!displayPlayLists) blockByPlayListName();
- if(!displayComments) blockComments();
- if(!autoplay) disableAutoplay();
- }
- var observer = null;
- if(document){
- observer = new MutationObserver(function(mutations){ execute(); });
- observer.observe(document.body, { childList: true, subtree: true });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement