There are 4 previous versions of this script.
// ==UserScript==
// @name Sportsfri Aftenposten
// @namespace http://haakonnilsen.com
// @description Aftenposten uten sport
// @include http://www.aftenposten.no/*
// ==/UserScript==
function findXPath(xpath, returnitem) {
var xp = document.evaluate(xpath, document, null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
return (returnitem < 0) ? xp : xp.snapshotItem(returnitem);
}
function remove(node) { node.parentNode.removeChild(node); }
// fjern sportsartikler:
var filterCategories = 'sport|fotball|sykkel';
var filterRE = new RegExp('/' + filterCategories + '/');
var articles = findXPath("//div[starts-with(@class, 'artSize')]", -1);
for (var i = 0; i < articles.snapshotLength; i++) {
var article = articles.snapshotItem(i);
var linkNodes = article.getElementsByTagName('a');
if (linkNodes.length > 0 && filterRE.test(linkNodes[0].href)) {
remove(article);
}
}
// fjern fra "mashup"-bokser
var mashups = findXPath("//div[@class = 'mashUpBox']/*/h1/a", -1);
for (var i = 0; i < mashups.snapshotLength; i++) {
var link = mashups.snapshotItem(i);
if (filterRE.test(link.href)) {
remove(link.parentNode.parentNode);
}
}
// fjern "siste fra sport":
var sisteHeader = findXPath("//h3[text() = 'Siste fra Sport']", 0);
if (sisteHeader != null) {
var sisteListe = sisteHeader.nextSibling;
remove(sisteHeader);
remove(sisteListe);
}
// fjern diverse menyvalg for sport:
var sportsMeny = findXPath("//li/a[contains(@class, 'itemSport')]", 0).parentNode;
remove(sportsMeny);
sportsMeny = findXPath("//h3[@class = 'f-sport']", 1).parentNode;
remove(sportsMeny);
// fjern sport fra TV-programmet:
tvsport = findXPath("//ul[@id = 'sport']", 0);
if (tvsport != null) {
tvsport.parentNode.style.display = 'none';
}