ORLY.db no xxx releases

Remove xxx-tagged records in the release log

As of 2015-09-28. See the latest version.

// ==UserScript==
// @name        ORLY.db no xxx releases
// @description Remove xxx-tagged records in the release log
// @include     http://www.orlydb.com/*
// @include     http://orlydb.com/*
// @version     1.0.2
// @namespace   wOxxOm.scripts
// @author      wOxxOm
// @license     MIT License
// @run-at      document-start
// ==/UserScript==

processNodes(null, document.querySelectorAll('a[href*="/xxx"]'));
setMutationHandler(document, 'a[href*="/xxx"]', processNodes);

function processNodes(observer, nodes) {
  for (var i=nodes.length, n; --i>=0 && (n=nodes[i].parentNode); )
    if (n.id != 'logo')
      n.parentNode.remove();
  return true;
}

function setMutationHandler(baseNode, selector, cb) {
  var ob = new MutationObserver(function(mutations){
    for (var i=0, ml=mutations.length, m; (i<ml) && (m=mutations[i]); i++)
      for (var j=0, nodes=m.addedNodes, nl=nodes.length, n; (j<nl) && (n=nodes[j]); j++)
        if (n.nodeType == 1) 
          if ((n = n.matches(selector) ? [n] : n.querySelectorAll(selector)) && n.length)
            if (!cb(ob, n))
              return;
  });
  ob.observe(baseNode, {subtree:true, childList:true}); 
}