// ==UserScript== // @name Picarto.tv ignore // @namespace picarto.tv.ignore.stuff.dasprids.de // @description Ignore users on Picarto.tv channel chats. // @include https://picarto.tv/* // @version 2 // @grant none // @downloadURL none // ==/UserScript== // Add the users you want to ignore here. Keep in mind that this list is // case-sensitive. var ignoreUsers = [ "UserA", "UserB" ]; var hideIgnoredMessage = function(node) { var $node = window.jQuery(node); ignoreUsers.forEach(function(username) { // Normal messages if ($node.hasClass('um-' + username.toLowerCase())) { $node.hide(); return; } // Action messages if ($node.hasClass('messageli') && $node.find('img[title="' + username + '"]').length > 0) { $node.hide(); return; } // Whisper messages if ($node.hasClass('whisperli') && $node.find('span[title="whisper ' + username + '"]').length > 0) { $node.hide(); return; } }); } var observer = new MutationObserver(function(mutations) { for (var i = 0; i < mutations.length; ++i) { for (var j = 0; j < mutations[i].addedNodes.length; ++j) { hideIgnoredMessage(mutations[i].addedNodes[j]); } } }); var targetNode = document.getElementById('msgs'); if (targetNode) { observer.observe(targetNode, { childList: true }); window.jQuery('#msgs > li').each(function() { hideIgnoredMessage(this); }); }