// ==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;