TorrMd filter

By sdio Last update Jan 17, 2008 — Installed 110 times.
// ==UserScript==
// @name          TorrMd filter
// @description   do some filter action
// @include       http://torrentsmd.com/*browse.php?cat=*
// @include       http://www.torrentsmd.com/*browse.php?cat=*
// ==/UserScript==
//
// License: GPL
// Author: sdio (http://www.linux.org.ru/whois.jsp?nick=sdio)
//
//Version 0.20

function $(id) {
	return document.getElementById(id);
}

function $x(xpath, contextNode, resultType) {
	contextNode = contextNode || document.body;
	resultType = resultType || XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE;
	return document.evaluate(xpath, contextNode, null, resultType, null);
}

function $xFirst(xpath, contextNode) {
	var xpr = $x(xpath, contextNode, XPathResult.FIRST_ORDERED_NODE_TYPE);
	return xpr.singleNodeValue;
}

unsafeWindow.do_filter = function () {
	var filter = $('_word_').value;
	if (filter) {
	// apply filter
		GM_setValue('torrent', filter);
		var tds = $x("./tr/td[2]/a/b", tbody)
		for (var i=1; i<tds.snapshotLength;i++){
			var obj = tds.snapshotItem(i);
			if (!obj.textContent.match(filter)) {
				obj.parentNode.parentNode.parentNode.style.display = 'none';
				obj.parentNode.parentNode.parentNode.className = '_none_';
			}
		}
	} else {
	// undo filter
		var trs = $x("./tr[@class='_none_']", tbody);
		for (var i=0; i<trs.snapshotLength; i++){
			var obj = trs.snapshotItem(i);
				obj.style.display = '';
				obj.className = '';
		}
	}
}

var filter = GM_getValue('torrent');
if (!filter) filter='DVDRip';

var tdiv = document.getElementById('torrents');
var tbody = $xFirst("./table/tbody", tdiv);
var tdname = $xFirst("./tr/td[2]", tbody);
tdname.innerHTML += ' ___ <input id="_word_" type="text" size="16" /> <input id="_dojob_" type="button" value="Apply" onclick="return do_filter()" />';
$('_word_').value = filter;