lednerg / YouBlock

// ==UserScript==
// @name        YouBlock
// @namespace   https://openuserjs.org/users/lednerg
// @description Hit 'Flag for Spam' to block users in YouTube chat
// @include     http://*.youtube.com/*
// @include     http://youtube.com/*
// @include     https://*.youtube.com/*
// @include     https://youtube.com/*
// @version     .1
// @grant       none
// ==/UserScript==

// All of the code below was written by darby.rathbone

var names = [
];
var listenForAllComments = function (e) {
  if (e.target.querySelector) {
    var allcomments = e.target.querySelector('#all-comments');
    if (allcomments) {
      allcomments.addEventListener('DOMNodeInserted', function (e) {
        var flag = e.target.querySelector('button[data-action="flag"]'),
        author = e.target.querySelector('.author'),
        authortext = author ? author.textContent.trim()  : '';
        if (flag && authortext) {
          flag.addEventListener('click', function (f) {
            names.push(authortext);
          });
        }
        if (authortext && names.some(function (f) {
          return f === authortext;
        })) {
          e.target.style.display = 'none';
        }
      });
      removeEventListener('DOMNodeInserted', listenForAllComments);
    }
  }
};
addEventListener('DOMNodeInserted', listenForAllComments);