// ==UserScript== // @name e1.ru forum filter // @namespace E1 // @version 3.0 // @description e1.ru forum reader's assistance. // @match *://www.e1.ru/talk/forum/read.php* // @grant none // ==/UserScript== function gmHideAnnoingPosts () { // replace with user names list who annoy you var annoyers = ["turIst_96","swimmming","mirlive","mirlive_com","Borneo17","Alexa-ek","over40","ak--47"]; // 0 - remove only annoyer's posts; other value - remove ALL posts mentioning annoyer var hardcore = 0; var target_contents = [], i=0, tlen = annoyers.length; var xPath = "//table[@cellspacing='0'and @cellpadding='5' and @width='100%' and @border='0']"; var aPosts = document.evaluate(xPath, document, null, XPathResult.ANY_TYPE, null); var garbage = [], post = aPosts.iterateNext(); //Build list of string to locate and hide for (i = 0; i < tlen; i++) { if (hardcore != 0) { target_contents[i] = annoyers[i]; } else { target_contents[i] = annoyers[i] + ''; } } //Search posts contain target strings and put them into 'garbage' array while (post) { for (i = 0; i < tlen; i++) { if (post.innerHTML.toString().indexOf(target_contents[i]) != -1) { garbage.push(post); } } post = aPosts.iterateNext(); } //Hide posts placed to garbage list var len = garbage.length; for (i = 0; i < len; i++) { post = garbage[i]; post.parentNode.removeChild(post); } } gmHideAnnoingPosts(); if (document.URL.search("#") >= 0) window.scrollTo(0, document.anchors[document.URL].y);