Sportsfri Aftenposten

By Haakon Nilsen Last update May 19, 2009 — Installed 101 times.

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';
}