// ==UserScript==
// @name XJ-Forum hideuser
// @namespace XJ
// @description Bestimmte User in Threads ausblenden
// @include http://www.xj-forum.de/bb/viewtopic.php*
// @version 1
// @grant none
// ==/UserScript==
/* add unwanted usernames here */
var uw_users = [];
uw_users.push('depp');
uw_users.push('deppatadepp');
/* build xpath */
/* html code looks like: '
username' so we look for all
text nodes that are preceeded by a span with attribute class='name' and a tag and
are equal to one of the unwanted usernames */
var xpath = "//span[@class='name']/b/text()[";
for (var i = 0; i < uw_users.length; i++) {
if (i > 0) {
xpath += " or ";
}
xpath += ".='" + uw_users[i] + "'";
}
xpath += "]";
/* find unwanted usernames */
var users = document.evaluate(xpath, document, null, XPathResult.ANY_TYPE, null);
var trs = [];
var alert_txt = 'Deleted posts from users: ';
while (user = users.iterateNext()) {
if (trs.length > 0) {
alert_txt += ', ';
}
alert_txt += user.textContent;
/* html code looks like: 'username' so we
have to climb up 4 levels to find the tablerow and remember it in trs */
var tr = user.parentNode.parentNode.parentNode.parentNode;
trs.push(tr);
/* also remember the next tablerow containing buttons and a spacer row (and
the two textnodes between them containing only whitespace) */
for (var i = 0; i < 4; i++) {
tr = tr.nextSibling;
trs.push(tr);
}
}
/* delete tablerows and alert user */
if (trs.length > 0) {
var t = trs[0].parentNode;
for (var i = 0; i < trs.length; i++) {
t.removeChild(trs[i]);
}
alert_txt += '.';
alert(alert_txt);
}
| |