Greasy Fork

Picarto.tv ignore

Ignore users on Picarto.tv channel chats.

目前为 2015-09-22 提交的版本。查看 最新版本

// ==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     1
// @grant       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('whisperli') && $node.find('img[title="' + username + '"]')) {
      $node.hide();
      return;
    }

    // Whisper messages
    if ($node.hasClass('whisperli') && $node.find('span[title="whisper ' + username + '"]')) {
      $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);
  });
}